A que se debe este mensaje ???
Como evitarlo ???
Some record fields (3) have change since the last retrieve operation.
Update aborted.
Gracias
TDBOdbcDirect()
TDBOdbcDirect()
Juan Carlos Salinas Ojeda
México. D.F.
-------------------------------------------------
México. D.F.
-------------------------------------------------
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
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
Juan Carlos,
No obstante, puedes modificar directamente el método UPDATE y marcar lo siguiente:
Saludos,
José Luis Capel
Si... ese es el comportamiento por defecto. Si quieres evitarlo puedes poner la data ::lNoCompare a .T.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 ???
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
*/
José Luis Capel