duda con sentencia

20/09/2006 - 13:00 por Alberto González | Informe spam
buenas a tod@s:

estoy intentando hacer esta update pero me da error

prioridad es integer
empresa y pedido son string
"update cpcurcab set prio=" & prioridad & " from cpcurcab , fapedl where
cpcurcab.npint=fapedl.npint AND cpcurcab.codemp=fapedl.codemp and
fapedl.codemp='" & empresa & "'" And "fapedl.numped='" & pedido & "'")

damantenimiento = New OleDb.OleDbDataAdapter(selecprio, conexion)

Preguntas similare

Leer las respuestas

#1 floyd303
20/09/2006 - 13:25 | Informe spam
Hola!

Puedes decir el error que te da?
Por otro lado, no se si estan bien las comillas (And "fapedl.numped=).
Revisalas... porque a lo mejor viene por ahi el problema.
Por si te sirve yo lo que hago es un Format para no liarme:

strSQL = String.Format ("update cpcurcab set prio={0} from cpcurcab ,
fapedl where
cpcurcab.npint=fapedl.npint AND cpcurcab.codemp=fapedl.codemp and
fapedl.codemp='{1}' And fapedl.numped='{2}'", prioridad, empresa,
pedido)

Luego estaba revisando un poco la sentencia... y al hacer joins puedes
hacer que la consulta sea no actualizable... tampoco se si es este tu
caso.

Espero que te ayude
Saludos
Roberto M. Oliva

Alberto González ha escrito:

buenas a :

estoy intentando hacer esta update pero me da error

prioridad es integer
empresa y pedido son string
"update cpcurcab set prio=" & prioridad & " from cpcurcab , fapedl where
cpcurcab.npint=fapedl.npint AND cpcurcab.codemp=fapedl.codemp and
fapedl.codemp='" & empresa & "'" And "fapedl.numped='" & pedido & "'")

damantenimiento = New OleDb.OleDbDataAdapter(selecprio, conexion)
Respuesta Responder a este mensaje
#2 Alberto Poblacion
20/09/2006 - 15:45 | Informe spam
"Alberto González" wrote in message
news:
estoy intentando hacer esta update pero me da error
[...]
damantenimiento = New OleDb.OleDbDataAdapter(selecprio, conexion)



Fíjate que se trata de una sentencia UPDATE pero se la estás metiendo a
un DataAdapter en donde éste espera la SELECT.

Dado que se trata de una sentencia de acción con todo el contenido fijo,
lo más adecuado sería ejecutarla con un Command en lugar de un DataAdapter:

Dim cmd as New OleDbCommand(selecprio, conexion)
conexion.Open()
cmd.ExecuteNonQuery()
conexion.Close()

Aparte de eso, si te da algún error de sintaxis en la sentencia, para con
el debugger en donde construyes el valor de selecprio, copia el valor al
portapapeles, y pégalo en la herramienta de consultas de tu base de datos, y
ejecuta la sentencia desde ahi. Normalmente el texto del error es en este
caso mucho más detallado que el que te da .Net, y es fácil averiguar qué es
lo que falla en la sentencia.

Otra observación más: estás concatenando en la sentencia variables de
tipo string, lo cual hace que tu programa sea susceptible de sucumbir ante
ataques de inyección de SQL. Eso se evitaría parametrizando la sentencia, lo
cual tendría la virtud adicional de eliminar las comillas, con lo que te
evitarías los errores de sintaxis que pudieran presentarse por estar alguna
comilla mál colocada (o por existir una comilla en medio del valor de las
variables que estás concatenando).
Respuesta Responder a este mensaje
#3 Alberto González
20/09/2006 - 17:52 | Informe spam
muchas muchas gracias


"Alberto González" escribió en el mensaje
news:
buenas a :

estoy intentando hacer esta update pero me da error

prioridad es integer
empresa y pedido son string
"update cpcurcab set prio=" & prioridad & " from cpcurcab , fapedl where
cpcurcab.npint=fapedl.npint AND cpcurcab.codemp=fapedl.codemp and
fapedl.codemp='" & empresa & "'" And "fapedl.numped='" & pedido & "'")

damantenimiento = New OleDb.OleDbDataAdapter(selecprio, conexion)


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida