*** Set up or reuse adoConn object. IF !THIS.Connect() this.nSqlResult = -1 RETURN -1 ENDIF LOCAL oCommand as ADODB.Command oCommand = CREATEOBJECT("AdoDb.Command") oCommand.ActiveConnection=this.oadoconn oCommand.CommandType= 1 &&adCmdText *!* IF LOWER(lcSql) = "exec" *!* oCommand.CommandType=4 && adCmdStoredProc *!* ENDIF oCommand.CommandText = lcSQL *** Parse the parameters from oParameters collection *** OR parse VFP style parameters THIS.AssignCommandParameters(oCommand) LOCAL oRS as Adodb.Recordset oRS = CREATEOBJECT("adodb.RecordSet") oRS.ActiveConnection = this.oadoconn oRS.CursorType= 0 && adOpenForwardOnly *** THIS RETURNS WHAT I NEED - but I can't tell *** the CA to load it * oRS = oCommand.Execute() ***** ca.DataSource = oRS && Now assign LOCAL llError, llResult llResult = ca.CursorFill(.F., .F., 0, oCommand) *** Gives error result about missing parameters etc. *** Parsed command string: *** Select * from wws_invoice where invdate < ? *** Error: Sql Parameter is missing *** Works with ADO - oCommand.Parameters.Count = 1