Necesito actualizar los datos de una tabla de 1300 registros y mucho tarda, antes lo hacia con REPLACE con DBF y es rápido
Ahora lo hago asi:
- Code: Select all Expand view
oDATA:=oServer:Query( "SELECT * FROM DATPER ORDER BY CODIGO FOR UPDATE")
Do While !oDATA:Eof()
Vacacion() //Obtengo los valores
nPend:=nTiene-nTomodas
oDATA:TIENE:=nTiene;oDATA:TOMADAS:=nTomadas;oDATA:PEND:=nPend
oDATA:Save()
oDATA:Skip()
Enddo
He encontrado un ejemplo de Daniel usando UPDATE pero le pone el mismo valor a todos los registros y también tarda, lo hago asi
- Code: Select all Expand view
oDATA:=oServer:Query( "SELECT * FROM DATPER ORDER BY CODIGO FOR UPDATE")
Do While !oDATA:Eof()
Vacacion() //Obtengo los valores
nPend:=nTiene-nTomodas
cQry:="UPDATE datper SET TIENE = " + ClipValue2SQL(nTiene) + "TOMADAS = " + ClipValue2SQL(nTomadas) + " PEND = " + ClipValue2SQL(nPend)
oDATA:oServer:SqlQuery( cQry )
oDATA:LoadQuery()
oDATA:Skip()
Enddo
Quizás hay otra manera de hacer la actualización más rápida.
Gracias por la ayuda.
Saludos,
Adhemar