ADO no me funciona en una tabla en especifico

ADO no me funciona en una tabla en especifico

Postby jllinas » Sun Mar 26, 2006 6:15 pm

Hola a todos,

... no tienen idea de lo que he buscado informacion sobre esto en la red, y finalmente he caido aqui, pues he llegado a la conclusion de que solamente Ustedes podran darme luz en esto.

Se trata del ampliamente expuesto en la red, problema del mensaje de error que aparece:

"No se puede encontrar la fila para su actualizacion: algunos valores han cambiado desde la ultima vez que se leyo"

A partir de alli, parece que la conexion con el recorset desaparece, pues todas las instrucciones que siguen aparecen con error, y nunca se ejecuta.


TOdo esto aparece al ejecutar una instruccion ::oRs:Update().

No me ocurre con todas las tablas de la base de datos, sino con una sola de ellas (hasta ahora no he comprobado con todas las tablas). A TODAS las tablas de la base de datos se le ha agregado un columna, al inicio, llamada "noreg", entero, auto_increment que lo utilizo como llave primaria.

Estoy usando xHarbour 0.99.3, FWH24, Borland 5.5.1, MySQL 3.23 (en modo local) e instale MyODBC 2.50

Hasta ahora he tratado lo siguiente:

1.- realizo las sustituciones con ::oRs:Fields(n):value := 'valor a cambiar', cambie a ::oRs:Fields('nombre del campo'):value := ´valor a cambiar', y el error persiste.

2.- realizo el ::oRs:Update() al final de las sustituciones. Cambie a realizar las sustituciones por ::oRs:Update('nombre del campo', 'valor a cambiar'), y el error persiste.

3.- Utilizo OPTION=3, y la cambie a OPTION=16387, y el error persiste.

4.- marque las dos primeras opciones en la configuracion de MyODBC en el COntrol Panel, y el error persiste.

5.- Ejecute todo con la opcion de Trazas seleccionada en Control Panel, y el archivo no me dice de nikngun error (o no se interpretarlo), y tambien seleccione la opcion de trazas con OPTION=7, y lo mismo.

6.- He leido todas las news de FW, y veo que nadie reporta esto.

7.- He buscado en la red, y aunque mucha gente lo reporta, nadie llega a una solucion. Algunos suguieren soluciones para VB, tales como utilizar los campos numericos en formato DOUBLE y no FLOAT, agregar un campo timestamp "dummy" a las tablas. Esto no lo he tratado aun.

Mi string de conexion es:

DRIVER={MySQL}; SERVER=localhost; DATABASE=XXXXXXX; UID=jllinas; PWD=XXXXXXXX; OPTION=16387

AL momento de conectar, el CursorLocation es adUseClient.

Para crear el recordset hago:

::oRs := CreateObject("ADODB.Recordset")
::oRs:Open( cQuery, uConn, nCursorType, nLockType, nOptions )

donde nCursorType es adOpenKeySet, nLockType es adLockOptimistic y nOptions es adCmdUnknown

He comprobado, y realmente el registro no se ha movido, comprobado entre la lectura y la escritura.

... no se que mas comprobar, a ver que estoy haciendo mal...

Me estoy tirando de los pelos que ya no me quedan!

AYUDA.... POR FAVOR !!!!!
Julio Llinás
Visita mi Blog en http://mangucybernetico.blogspot.com/
xHarbour 1.1.0 + FWH810 + Borland 5.5.1
User avatar
jllinas
 
Posts: 189
Joined: Fri Oct 14, 2005 12:33 am
Location: Santo Domingo, Dominican Republic

Postby jllinas » Mon Mar 27, 2006 12:08 am

:( Sorry,

Wrong place.... moved to spanish forum!
Julio Llinás
Visita mi Blog en http://mangucybernetico.blogspot.com/
xHarbour 1.1.0 + FWH810 + Borland 5.5.1
User avatar
jllinas
 
Posts: 189
Joined: Fri Oct 14, 2005 12:33 am
Location: Santo Domingo, Dominican Republic


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 39 guests