FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour TDBOdbcDirect()
Posts: 219
Joined: Fri Nov 04, 2005 02:34 PM
TDBOdbcDirect()
Posted: Wed Apr 05, 2006 07:38 PM

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.

-------------------------------------------------
Posts: 229
Joined: Wed Oct 12, 2005 05:32 PM
TDBOdbcDirect()
Posted: Wed Apr 05, 2006 10:28 PM

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

Posts: 219
Joined: Fri Nov 04, 2005 02:34 PM
TDBOdbcDirect()
Posted: Thu Apr 06, 2006 02:50 PM

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.

-------------------------------------------------
Posts: 229
Joined: Wed Oct 12, 2005 05:32 PM
TDBOdbcDirect()
Posted: Thu Apr 06, 2006 04:54 PM
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:

 /*
     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
Posts: 219
Joined: Fri Nov 04, 2005 02:34 PM
TDBOdbcDirect()
Posted: Thu Apr 06, 2006 07:39 PM

Que consecuencias tendría si comento esas lineas que
me estás sugiriendo ???

Juan Carlos Salinas Ojeda

México. D.F.

-------------------------------------------------

Continue the discussion