TDBOdbcDirect()

Post Reply
User avatar
VeRCE
Posts: 219
Joined: Fri Nov 04, 2005 2:34 pm
Location: Mexico D.F.
Contact:

TDBOdbcDirect()

Post by VeRCE »

A que se debe este mensaje ???
Como evitarlo ???

Some record fields (3) have change since the last retrieve operation.
Update aborted.


Gracias
Juan Carlos Salinas Ojeda
México. D.F.
-------------------------------------------------
User avatar
jlcapel
Posts: 229
Joined: Wed Oct 12, 2005 5:32 pm
Location: Valencia - España
Contact:

Post by jlcapel »

Juan Carlos,

La clase tOdbcDirect utiliza la misma técnica que ADO: hace una consulta de acción para verificar si los datos que vas a actualizar son 'consistentes'. En caso que hayan sido modificados por otro terminal mientras tu estabas editando los mismos datos la clase te avisa con el mensaje que citas.

Saludos,
José Luis Capel
User avatar
VeRCE
Posts: 219
Joined: Fri Nov 04, 2005 2:34 pm
Location: Mexico D.F.
Contact:

Post by VeRCE »

Es decir que cada vez que dos terminales modifiquen los
datos del mismo registro, el último que intente actualizar
los datos obtendrá ese error. Es correcto ???
Juan Carlos Salinas Ojeda
México. D.F.
-------------------------------------------------
User avatar
jlcapel
Posts: 229
Joined: Wed Oct 12, 2005 5:32 pm
Location: Valencia - España
Contact:

Post by jlcapel »

Juan Carlos,
Es decir que cada vez que dos terminales modifiquen los
datos del mismo registro, el último que intente actualizar
los datos obtendrá ese error. Es correcto ???
Si... ese es el comportamiento por defecto. Si quieres evitarlo puedes poner la data ::lNoCompare a .T.

No obstante, puedes modificar directamente el método UPDATE y marcar lo siguiente:

Code: Select all

 /*
     if ::RecordHasChanged(@aChanged)
         if aChanged[1] == 0
            ::SQLAlert("Record has been deleted since the last retrieve operation, Update aborted")
         else
            cFields := ""
            Aeval(aChanged, {|v,e| cFields += ltrim(str(v)) + iif( e < len(aChanged),", " ,"" )})
            ::SQLAlert("Some record fields ("+cFields+;
                       ") have change since the last retrieve operation, Update aborted")
         endif
         return .f.
      endif
*/
Saludos,
José Luis Capel
User avatar
VeRCE
Posts: 219
Joined: Fri Nov 04, 2005 2:34 pm
Location: Mexico D.F.
Contact:

Post by VeRCE »

Que consecuencias tendría si comento esas lineas que
me estás sugiriendo ???
Juan Carlos Salinas Ojeda
México. D.F.
-------------------------------------------------
Post Reply