Wow… Hoy si que ha estado hectic el día …
Primero decidí la arquitectura de la aplicación, que para efectos de la prueba de concepto la estaré dividiendo en dos capas lógicas principales, que será la capa de acceso a datos y la capa de negocio. La capa de negocio específicamente es el WebService, que estará consumiendo información de la capa de datos; y el UI será obviamente SharePoint Portal Server mediante WebParts y ASPX dentro del contexto del SPOM.
Uno de los puntos interesantes que me encontré al desarrollar; es que realmente nunca había consumido un procedimiento almacenado desde una base de datos de Infomix. Ha he tenido encuentros cercanos con Informix, pero lo que encontré es:
Para mandar a ejecutar un procedimiento almacenado, es exactamente igual que hacerlo con SQL Client, solo que no te regresa de ninguna manera los nombres de las columnas del procedimiento; esto quiere decir que te las deja llenas con Expr001 … Expr(n)
Para esto, decidi consumir los procedimientos almacenados vía dataReaders y de ahi paso la información manualmente a DataSets. Si, que flojera; mucha talacha pero después podemos mejorar el código con un poco de refactoring. Nazul me comenta que si quieres usar ODBC / OLEDB tienes que mandar a ejecutar el procedimiento almacenado con CommandType = Text y el texto que sea el SQL … ejemplo: «EXECUTE PROCEDURE mysp(?,?)» y después puedes añadir los parámetros (o en todo caso, concatenarlos dentro de la cadena).
Este es un ejemplo de como consumir un procedimiento almacenado usando el Informix .NET Provider:
1 | IfxConnection cn = new IfxConnection(_connectionString); |
2 | cn.Open(); |
3 | |
4 | IfxCommand cmd = new IfxCommand(«fnselcalificacionfinal», cn); |
5 | cmd.CommandType = CommandType.StoredProcedure; |
6 | |
7 | cmd.Parameters.Add(«matricula», IfxType.Char, 10); |
8 | cmd.Parameters.Add(«periodo», IfxType.Char, 5); |
9 | |
10 | cmd.Parameters[0].Value = Matricula; |
11 | cmd.Parameters[1].Value = ObtenPeriodoActual(); |
Notese que los parámetros no son necesarios que concuerden con la lista de parámetros del storeprocedure (como en el caso de OLEDB con SQL Server u Oracle).
Hoy nos aventamos casi toda la funcionalidad de dos módulos principales de la aplicación en casi 4 horas, buen record y como siempre; modestia aparte mi código compila a la primera y cero runtime errors … (ajáaaaa.. claaaroo) jejeje
Este fin de semana la voy a pasar en Guadalajara. Hasta ahorita no tengo nada planeado, aunque los muchachos de aquí probablemente me inviten a salir a algún lado el Sábado o Domingo. A ver que tal… el hotel donde me estoy quedando tiene alberca, podría pasar a relajarme un buen rato, pero desgraciadamente el clima esta bastante chafa…
Ahh… y ya me enteré de mi nuevo apodo 😛
Cheers! xD
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.