*!* **********************************************************************************
*!* Funcion de preparacion de las tablas de procesos para el TABLEUPDATE
*!* **********************************************************************************
FUNCTION PREPARACURSOR
LPARAMETERS ralias,restru,rfisico
IF PCOUNT() < 1
RETURN .F.
ENDIF
LOCAL old_select,restru,rfisico,rcamps1,rcamps2,rprim,a
old_select = ALIAS()
#INCLUDE FOXPRO.H
restru = IIF(EMPTY(restru),loc_nomestruc(ralias),restru)
IF EMPTY(rfisico)
IF USED(ralias)
rfisico = loc_nomfisico(ralias)
ELSE
rfisico = name_tabla(restru)
ENDIF
ENDIF
rcamps1 = mk_upd_list(restru,0)
rcamps2 = mk_upd_list(restru,1,rfisico)
rprim = mk_key_list(restru)
a=CURSORSETPROP('TABLES',rfisico,ralias)
a=CURSORSETPROP('KEYFIELDLIST',rprim,ralias)
a=CURSORSETPROP('UpdateNameList',rcamps2,ralias)
a=CURSORSETPROP('UpdatableFieldList',rcamps1,ralias)
IF rnum_transact < 1
a=SQLSETPROP(nro_conec,'Transactions',2)
ENDIF
a=CURSORSETPROP('Buffering',5,ralias)
a=CURSORSETPROP('SendUpdates',.T.,ralias)
IF !EMPTY(old_select)
SELECT(old_select)
ENDIF
RETURN
ENDFUNC
*******************************************************************
FUNCTION ENVIARCURSOR
LPARAMETERS ralias,muest_error
IF PCOUNT() < 1
RETURN .F.
ENDIF
LOCAL retor,old_select,rtransa
old_select = ALIAS()
DO verifica_datos WITH ralias
retor = .F.
IF rnum_transact = 0
rtransa = 1 && TRANSACCION AUTOMATICA
ELSE
rtransa = 2 && TRANSACCION MANUAL
ENDIF
*WAIT WINDOW "Voy a TABLEUPDATE(.T.,.T.,"+ralias+") ..."
IF NOT TABLEUPDATE(.T.,.T.,ralias)
muest_error = .T.
IF muest_error
n = AERROR(mat_error) && Datos del error más reciente
IF (n > 0) AND (mat_error[1,5] != 2627)
a_err = "muestra_error("+ALLTRIM(STR(n))+","+"@mat_error"+")"
&a_err
ENDIF
ENDIF
IF rnum_transact = 0
IF ODBC_MOTOR = 'SQL'
=SQLEXEC(nro_conec,'ROLLBACK TRANSACTION')
=SQLSETPROP(nro_conec,'Transactions',rtransa)
ELSE
=SQLROLLBACK(nro_conec)
=SQLSETPROP(nro_conec,'Transactions',rtransa)
ENDIF
ENDIF
retor = .F.
ELSE
IF rnum_transact = 0
IF ODBC_MOTOR = 'SQL'
=SQLEXEC(nro_conec,'COMMIT TRANSACTION')
=SQLSETPROP(nro_conec,'Transactions',rtransa)
ELSE
=SQLCOMMIT(nro_conec)
=SQLSETPROP(nro_conec,'Transactions',rtransa)
ENDIF
ENDIF
retor = .T.
ENDIF
=CURSORSETPROP('SendUpdates',.F.,ralias) && Temporal de Grilla???
IF !EMPTY(old_select)
SELECT(old_select)
ENDIF
RETURN retor
ENDFUNC