*!* ADO CursorAdapter CLEAR ALL RELEASE ALL CLOSE ALL oXC = CREATEOBJECT('xcADO') oXC.GetOracleData() IF oXC.lFilled BROWSE oXC.SaveData() IF oXC.lSaved MESSAGEBOX('Save worked.') ELSE MESSAGEBOX('Save failed.') clear ? ? oXC.aErrorInfo(1) ? oXC.aErrorInfo(2) ENDIF ELSE MESSAGEBOX('CursorFill Failed') CLEAR LIST STRUCTURE ? ? oXC.aErrorInfo(1) ? oXC.aErrorInfo(2) ENDIF oXC.RELEASE() RELEASE oXC DEFINE CLASS xcADO AS CURSORADAPTER lUseCursorSchema = .f. ALIAS = 'crsUsers' CursorSchema = "keyid n(4),loginid c(8),lastname c(30)," ; + "firstname c(30),manager n(1),enforcement n(1)" BufferModeOverride = 5 DATASOURCETYPE = "ADO" ALLOWUPDATE = .T. SELECTCMD = "select * from appusers" UPDATECMD = 'update appusers set lastname = ?TRIM(crsUsers.lastname)' ; + ' where keyid = ?crsUsers.keyid)' KEYFIELDLIST = 'KeyID' TABLES = 'AppUsers' UPDATABLEFIELDLIST = 'LastName' UPDATENAMELIST = 'KEYID AppUsers.KeyID, LASTNAME AppUsers.LastName' WHERETYPE = 1 lFilled = .F. DIMENSION aErrorInfo(1) nError = 0 lSaved = .F. PROTECTED PROCEDURE INIT CLEAR THIS.ADDPROPERTY('oConn', NEWOBJECT("ADODB.Connection")) THIS.ADDPROPERTY('oRS', NEWOBJECT("ADODB.Recordset")) THIS.oConn.ConnectionString = ; "Driver=Microsoft ODBC for Oracle;UID=myuid;PWD=mypwd;Server=local;" THIS.oConn.OPEN() THIS.oRS.ActiveConnection = THIS.oConn THIS.DATASOURCE = THIS.oRS ENDPROC PROCEDURE GetOracleData THIS.ResetError() THIS.lFilled = THIS.CURSORFILL(THIS.lUseCursorSchema) IF NOT THIS.lFilled THIS.nError = AERROR(THIS.aErrorInfo) ENDIF ENDPROC PROCEDURE SaveData THIS.ResetError() THIS.lSaved = TABLEUPDATE(1, .t., 'crsUsers') IF NOT THIS.lSaved THIS.nError = AERROR(THIS.aErrorInfo) ENDIF ENDPROC PROTECTED PROCEDURE ResetError THIS.nError = 0 THIS.aErrorInfo = [] ENDPROC PROTECTED PROCEDURE Destroy THIS.oRS = .null. THIS.oConn = .null. ENDPROC PROCEDURE RELEASE RELEASE THIS ENDPROC ENDDEFINE