>***************** >*!* CREATE OR REPLACE PACKAGE my_pkg AS >*!* TYPE curTyp IS REF CURSOR RETURN myvu%ROWTYPE; >*!* PROCEDURE open_my_cur (my_cur IN OUT curTyp, >*!* choice IN VARCHAR2); >*!* END my_pkg; >*!* / >*!* CREATE OR REPLACE PACKAGE BODY my_pkg AS >*!* PROCEDURE open_my_cur (my_cur IN OUT curTyp, >*!* choice IN VARCHAR2) IS >*!* BEGIN >*!* OPEN my_cur FOR SELECT * from myvu >*!* where the_key = choice ; >*!* END open_my_cur; >*!* END my_pkg; >*!* / >close all >clear all >release all >clear >oVFPCOM = CreateObject('vfpcom.comutil') >con = createobject("ADODB.Connection") >Rst = createobject("ADODB.RecordSet") >con.Open("DSN=OraHTR;User Id=htr;PASSWORD=wingsof;UID=htr;SERVER=htr") >strSP = "htr.htr_pkg_dev.open_trjn_cur(?, '00000001')" >rst.open(strSP, con, 0, 1, 4) >?rst.fields.count >nError = oVFPCOM.RSToCursor(rst, 'myadocur') >if nError >= 0 > select myadocur > browse >else >?nError >=aerror(ae) >?'Error Text' >disp memo like ae >?'********************' >rst.close >con.close >close all >clear all >release all >return >***************** >***************** > > >local nHndl, nSQLResult, noVal, cJobNo, ae >nHndl = sqlconnect("OraDSN") >if nHndl <+ 0 > =aerror(ae) > disp memo like ae > sqldisconnect(0) > return >endif > >noVal = '' >nSQLResult = SQLExec(nHndl, "{call usr.my_pkg.open_my_cur (?noVal, '00000001')}","MyCursor") >scatter NAME oSPora >DEBUG >use in MyCursor >* ... >>* AndyD 8-)#