I am using CA with ADO to access data on a SQL server database. I have a method on a form that calls links to the database and retreieves the data. I can see the alias created while the code is executing in the method. However, the minute the method terminates the cursor is gone. How can I prevent the cursor from closing once the method has terminated so that it is available through out the form like any other table or cursor.
I have used the following code to create my cursor:
LOCAL loConn AS ADODB.CONNECTION, ;
loCommand AS ADODB.COMMAND, ;
loException AS EXCEPTION, ;
loCursor AS CURSORADAPTER, ;
laErrors[1]
SET MULTILOCKS ON
lcFile = "FILE NAME=" + "my.udl"
loConn = NEWOBJECT("adodb.connection")
oRecordSet = NEWOBJECT("adodb.recordset")
loCursor = CREATEOBJECT('CURSORADAPTER')
loCommand = CREATEOBJECT('ADODB.COMMAND')
lcStoreProc = "Get_cust_1"
loConn.open(lcFile)
oRecordSet.cursortype = 3
oRecordSet.LockType = 2
WITH loCommand
.activeconnection = loConn
.commandtext = lcStoreProc
.commandtype = 4
.parameters("@cl_cltype").value = ltCustType
.parameters("@cl_language").value = ltLang
ENDWITH
oRecordSet = loCommand.Execute
WITH loCursor
.ALIAS = 'client'
.DATASOURCETYPE = 'ADO'
.DATASOURCE = oRecordSet
.SELECTCMD = lcStoreProc
IF .CURSORFILL (.F., .F., 0, oRecordSet)
SELECT client
ELSE
AERROR(laErrors)
MESSAGEBOX(laErrors[2])
RETURN .F.
ENDIF
loCommand.ActiveConnection = loConn
ENDWITH
The cursor client is the cursor that terminates when the method is complete.
Thanks in advance
Stuart Reid
True nobility lies not in being superior to another man, but in being superior to one’s previous self