DEFINE CLASS OracleClass AS Custom *!* properties list cUserID = '' cPassword = '' cServer = '' nHandle = 0 PROTECTED PROCEDURE Init *!* do whatever here ENDPROC PROTECTED PROCEDURE Destroy IF This.nHandle > 0 SQLDisconnect(This.nHandle) ENDIF ENDDPROC PROCEDURE Release RELEASE This ENDPROC PROCEDURE Cr8_Connection IF This.nHandle > 0 RETURN .T. ENDIF local lcConString lcConString = 'Driver=Microsoft ODBC Driver for Oracle;UID=' ; + This.cUserID + ';PWD=' + This.cPassword + ';Server=' ; + This.cServer + ';)' This.nHandle = SQLStringConnect(lcConString) RETURN (This.nHandle > 0) ENDPROC PROCEDURE RunSQL LPARAMETERS tcSQL, tcCursor IF VARTYPE(tcSQL) <> "C" or EMPTY(tcSQL) RETURN -1 ENDIF IF NOT This.Cr8_Connection() RETURN -1 ENDIF if vartype(tcCursor) = "C" and not empty(tcCursor) lnRetVal = SQLExec(This.nHandle, tcSQL, tcCursor) else lnRetVal = SQLExec(This.nHandle, tcSQL) endif RETURN lnRetVal ENDPROC PROCEDURE OtherStuff * do stuff here ENDPROC ENDDEFINETo use it: