Hola amigos:
En una operacion tan simple como:
WITH OBJECT ::oFactura
:Edit()
:campo := .t.
if :modified()
:update()
else
:cancel()
endif
END WITH
me lanza el error. "No se puede encontrar la fila para su actualización algunos valores han cambiado desde la última vez que se leyó.[#32]".
Si la operacion es AddNew()... Update() no me provoca error, es más, si la BD MySQL la tengo en local no provoca el mencionado error, si la ataco en remoto sí.
Alguien me podría hechar una manita.
Saludos.
Emilio Gil.
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Problema con Update()
Problema con Update()
Me sumo al pedido de Emilio !!!!
"Emilio Gil" escribió en el mensaje de
noticias:4ebabd09$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Hola amigos:
En una operacion tan simple como:
WITH OBJECT ::oFactura
:Edit()
:campo := .t.
if :modified()
:update()
else
:cancel()
endif
END WITH
me lanza el error. "No se puede encontrar la fila para su
actualización algunos valores han cambiado desde la última
vez que se leyó.[#32]".
Si la operacion es AddNew()... Update() no me provoca
error, es más, si la BD MySQL la tengo en local no provoca
el mencionado error, si la ataco en remoto sí.
Alguien me podría hechar una manita.
Saludos.
Emilio Gil.
"Emilio Gil" escribió en el mensaje de
noticias:4ebabd09$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Hola amigos:
En una operacion tan simple como:
WITH OBJECT ::oFactura
:Edit()
:campo := .t.
if :modified()
:update()
else
:cancel()
endif
END WITH
me lanza el error. "No se puede encontrar la fila para su
actualización algunos valores han cambiado desde la última
vez que se leyó.[#32]".
Si la operacion es AddNew()... Update() no me provoca
error, es más, si la BD MySQL la tengo en local no provoca
el mencionado error, si la ataco en remoto sí.
Alguien me podría hechar una manita.
Saludos.
Emilio Gil.
-
- Mensajes: 102
- Registrado: Mar Ago 15, 2006 3:28 pm
Problema con Update()
Tengo el mismo problema, y con algunas pruebas he detectado a las
condiciones que lo provocan. (en un TSqlTable o en un TSqlQuery) utilizando
TAdoDatasource.
Aparentemente, este problema surge cuando se modifica un campo, pero sin
modificarle el valor.
A ver si soy claro:
por ej, el siguiente código no falla: (supongamos que
:oTablaSql:Campo='aaaaa')
:oTablaSql:Edit()
:oTablaSql:Campo:='12345'
:oTablaSql:UpDate()
Ahora bien. Si ejecutamos nuevamente el código anterior, salta el error ("no
se puede encontrar la fila para su actualización... bla bla bla...).
Como dije, esto ocurre porque intentamos poner el mismo valor. Como si el
comando Update() fallara si detecta que no se modifica ningún valor y hay
asignaciones pendientes.
Es extraño.
Estaría bueno saber como solucionarlo.
"Emilio Gil" <emiliogil[at]ono[dot]com> escribió en el mensaje de
noticias:4ebabd09$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Hola amigos:
>
> En una operacion tan simple como:
>
> WITH OBJECT ::oFactura
> :Edit()
> :campo := .t.
> if :modified()
> :update()
> else
> :cancel()
> endif
> END WITH
>
> me lanza el error. "No se puede encontrar la fila para su
> actualización algunos valores han cambiado desde la última
> vez que se leyó.[#32]".
>
> Si la operacion es AddNew()... Update() no me provoca
> error, es más, si la BD MySQL la tengo en local no provoca
> el mencionado error, si la ataco en remoto sí.
>
> Alguien me podría hechar una manita.
>
> Saludos.
> Emilio Gil.
>
>
>
condiciones que lo provocan. (en un TSqlTable o en un TSqlQuery) utilizando
TAdoDatasource.
Aparentemente, este problema surge cuando se modifica un campo, pero sin
modificarle el valor.
A ver si soy claro:
por ej, el siguiente código no falla: (supongamos que
:oTablaSql:Campo='aaaaa')
:oTablaSql:Edit()
:oTablaSql:Campo:='12345'
:oTablaSql:UpDate()
Ahora bien. Si ejecutamos nuevamente el código anterior, salta el error ("no
se puede encontrar la fila para su actualización... bla bla bla...).
Como dije, esto ocurre porque intentamos poner el mismo valor. Como si el
comando Update() fallara si detecta que no se modifica ningún valor y hay
asignaciones pendientes.
Es extraño.
Estaría bueno saber como solucionarlo.
"Emilio Gil" <emiliogil[at]ono[dot]com> escribió en el mensaje de
noticias:4ebabd09$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Hola amigos:
>
> En una operacion tan simple como:
>
> WITH OBJECT ::oFactura
> :Edit()
> :campo := .t.
> if :modified()
> :update()
> else
> :cancel()
> endif
> END WITH
>
> me lanza el error. "No se puede encontrar la fila para su
> actualización algunos valores han cambiado desde la última
> vez que se leyó.[#32]".
>
> Si la operacion es AddNew()... Update() no me provoca
> error, es más, si la BD MySQL la tengo en local no provoca
> el mencionado error, si la ataco en remoto sí.
>
> Alguien me podría hechar una manita.
>
> Saludos.
> Emilio Gil.
>
>
>
Problema con Update()
Hola Mariano:
Lo que tu pones yo ya lo había detectado que cuando no cambiaba el valor del campo al realizar el Update() daba el error, pero mira bien el codigo escrito por mí, yo solo realizo el Update() en caso de que se haya modificado el campo en caso contrario realizo un Cancel() y aún así el error persiste, pero insisto solo cuando el ataque se hace a MySql en remoto, nunca en local.
Saludos.
Lo que tu pones yo ya lo había detectado que cuando no cambiaba el valor del campo al realizar el Update() daba el error, pero mira bien el codigo escrito por mí, yo solo realizo el Update() en caso de que se haya modificado el campo en caso contrario realizo un Cancel() y aún así el error persiste, pero insisto solo cuando el ataque se hace a MySql en remoto, nunca en local.
Saludos.