BeginTrans() = SQLEXEC( This.DataSource, "BEGIN TRANSACTION" ) CommitTrans() = SQLEXEC( This.DataSource, "COMMIT" ) RollbackTrans() = SQLEXEC( This.DataSource, "ROLLBACK" ) SaveTrans() * loop thru each CA object * dump into a Collection oCursors llCommit = .T. FOR EACH loCursor IN oCursors IF NOT loCursor.Save() llCommit = .F. ENDIF ENDFOR IF llCommit This.CommitTrans() ELSE This.RollBackTrans() ENDIFHTH,