>TRY > m.llRetorno=.F. > >***********/cursor que almacena las conecciones /****************** > CREATE CURSOR c_conecciones (DATABASE c(100), coneccion c(100), handle N(4),ODBCH N(10), SOURCETYPE N(2)) >=CURSORSETPROP("Buffering", 3, "c_conecciones") >FOR i= 1 TO 100 > x="THISFORM.DATAENVIRONMENT.cursor"+ALLT(STR(i)) > Y="THISFORM.DATAENVIRONMENT.cursor"+ALLT(STR(i)+".BufferModeOverride" > z=x+".alias" > IF TYPE("&x")="O" > m.lcTable=&z > SELEC &lcTable > m.lnSourceType=CURSORGETPROP('SourceType',lcTable) > IF m.lnSourceType=2 OR m.lnSourceType=4 > m.lcDataBase=CURSORGETPROP('Database',lcTable) > m.lcConeccion=CURSORGETPROP('ConnectName',lcTable) > m.lnHandle=CURSORGETPROP('ConnectHandle',lcTable) > m.lnODBCH=SQLGETPROP(m.lnHandle,"ODBChdbc") > SELECT c_conecciones > IF ALLTRIM(m.lcConeccion) <> ALLTRIM(c_conecciones.coneccion) > APPEND BLANK > REPLACE c_conecciones.DATABASE WITH ALLTRIM(m.lcDataBase) > REPLACE c_conecciones.coneccion WITH ALLTRIM(m.lcConeccion) > REPLACE c_conecciones.handle WITH m.lnHandle > REPLACE c_conecciones.ODBCH WITH m.lnODBCH > REPLACE c_conecciones.SOURCETYPE WITH m.lnSourceType > ENDIF > ENDIF > ENDIF > ENDFOR > SELECT c_conecciones > ******************************/ /****************** > SCAN > SQLSETPROP(c_conecciones.handle, 'Transactions', 2) > IF THISFORM.Tipo_vista='SQL' > SQLExec(c_conecciones.handle, 'BEGIN TRANSACTION' ) > ENDIF > ENDSCAN > > ******************************/ Actualizar tablas /******************************* > m.lcNombreTablas='' > m.lnModified=0 > FOR i= 1 TO 100 > x="THISFORM.DATAENVIRONMENT.cursor"+ALLT(STR(i)) > Y="THISFORM.DATAENVIRONMENT.cursor"+ALLT(STR(i))+".BufferModeOverride" > z=x+".alias" > IF TYPE("&x")="O" > m.lcTable=&z > SELEC &lcTable > IF &Y=5 > IF NOT TABLEUPDATE(1,.T.,m.lcTable) > = AERROR(aErrorArray) > IF aErrorArray[1]=1526 > THROW aErrorArray[3]+"(1) El error se originó actualizando: "+m.lcTable > ELSE > THROW aErrorArray[2]+"(1) El error se originó actualizando: "+m.lcTable > ENDIF > ENDIF > ENDIF > ENDIF > SELECT &lcTable > ENDFOR > > > SELECT c_conecciones > SCAN > IF THISFORM.Tipo_vista='SQL' > m.lnCommit=SQLExec( c_conecciones.handle, 'IF @@TRANCOUNT > 0 COMMIT' ) > ELSE > m.lnCommit=SQLCOMMIT(c_conecciones.handle) > ENDIF > IF m.lnCommit=-1 > THROW "Transacción no se pudo actualizar" > ENDIF > ENDSCAN > > m.llRetorno = .T. > > >CATCH TO loException > SELECT c_conecciones > SCAN > IF THISFORM.Tipo_vista='SQL' > =SQLExec( c_conecciones.handle, 'IF @@TRANCOUNT > 0 ROLLBACK' ) > ELSE > =SQLROLLBACK(c_conecciones.handle) > ENDIF > ENDSCAN > MESSAGEBOX(Exception_Error(loException),0+16,THISFORM.CAPTION) > m.llRetorno = .F. > >FINALLY > SELECT c_conecciones > SCAN > =SQLSETPROP(c_conecciones.handle, 'Transactions', 1) > ENDSCAN >ENDTRY > >RETURN m.llRetorno