Foros del Web » Programación para mayores de 30 ;) » .NET »

Orden parametros en Access

Estas en el tema de Orden parametros en Access en el foro de .NET en Foros del Web. Hola todos, vengo del hilo http://www.forosdelweb.com/f29/sente...5-0-a-1076454/ Me gustaria encontrar una solución al siguiente problema: Pude determinar que el orden de los parametros afecta la sentencia ...
  #1 (permalink)  
Antiguo 10/10/2013, 10:36
 
Fecha de Ingreso: noviembre-2006
Ubicación: Pasto
Mensajes: 154
Antigüedad: 18 años
Puntos: 1
Orden parametros en Access

Hola todos, vengo del hilo http://www.forosdelweb.com/f29/sente...5-0-a-1076454/

Me gustaria encontrar una solución al siguiente problema:

Pude determinar que el orden de los parametros afecta la sentencia sql, en este caso un update.

Supongamos que tenemos una clase para hacer todas las operaciones de base de datos y usamos los mismos parametros en todos para no tener que duplicar codigo innecesariamente.

Código:
                Select Case params("p_tipo_op")

                    Case "I"
                        query = "INSERT INTO DIST(dist,nomdist,reg,visita,nomdist2) VALUES(@dist, @nomdist, @reg, @visita, @nomdist2)"

                    Case "D"
                        query = "DELETE FROM DIST WHERE dist = @dist"

                    Case "U"
                        query = "UPDATE DIST SET nomdist = @nomdist, reg = @reg, visita = @visita, nomdist2 = @nomdist2 WHERE dist = @dist"

                End Select
                db.AddInParameter(dbc, "dist", DbType.String, params("p_dist"))
                db.AddInParameter(dbc, "nomdist", DbType.String, params("p_nomdist"))
                db.AddInParameter(dbc, "reg", DbType.String, params("p_reg"))
                db.AddInParameter(dbc, "visita", DbType.String, params("p_visita"))
                db.AddInParameter(dbc, "nomdist2", DbType.String, params("p_nomdist2"))
El insert y el delete funcionan perfectamente, pero cuando intento ejecutar el update no. Despues de dar tantas vueltas pude determinar que lo que afectaba mi sentencia sql era el orden de los parametros.

Si analizamos el update en el tenemos los parametros en el siguiente orden: nomdist, reg, visita, nomdist2 y por ultimo dist.

Pero al agregar los parametros lo estamos haciendo en un orden completamente diferente: dist, nomdist, reg, visita y nomdist.

A pesar de enviarle los nombres de los parametros mi codigo no es capaz de interpretarlos y simplemente los va agregando en el mismo orden de la sentencia sql y por ende no coinciden los campos.

Por lo tanto el update queda asi:

Código:
"UPDATE DIST SET nomdist = @dist, reg = @nomdist, visita = @reg, nomdist2 = @visita WHERE dist = @nomdist2"
Esto no se aprecia a simple vista con el inspector de variables de .NET, lo hace por debajo solo que lo expongo de esta manera para que me entiendan.

Una solucion facil seria colocar un orden dependiendo de la sentencia a trabajar pero eso implica repetir codigo innecesariamente.

Me gustaria saber si alguien tiene una solucion optima para este problema sin tener que duplicar codigo y tener solo una seccion en donde se agreguen los parametros.

Mil gracias!

Etiquetas: access, parametros, update
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:31.