SQLSETPROP(nConnectionHandle,'Transactions',2) && enable manual transactions LOCAL lbSuccess, laError[1] lbSuccess = .F. DO CASE CASE SQLEXEC(nConnectionHandle,'UPDATE ...') = -1 CASE SQLEXEC(nConnectionHandle,'UPDATE 2 ..') = -1 CASE SQLEXEC(nConnectionHandle,'DELETE ...') = -1 OTHERWISE && will be exectud if all goes well lbSuccess = .T. ENDCASE IF lbSuccess IF SQLCOMMIT(nConnectionHandle) = 1 ? "Transaction commited successful" ELSE AERROR(laError) && handle error here ENDIF ELSE AERROR(laError) && saves error from SQLEXEC IF SQLROLLBACK(nConnectionHandle) = 1 ? "unsuccessful transaction rolled back" ELSE ? "Error on rolling back transaction" ENDIF && handle error here ENDIF && set transaction handling to automatic again SQLSETPROP(nConnectionHandle,'Transactions',1)Regards