在服务端将数据表中的数据取出放到Variant中(即放到内存中)然后在客户端将数据取出,总是报错。
我想将数据保存到数据集中,如:var ls_Result :Variant; ls_Result := CreateOleObject('ADODB.RecordSet');
然后在客户端也用同样的方法取出,但不行,请问如何将查询的结果集返回给客户端?
代码如下:
function TEDI.GetWaitForDo_t(ls_Sql: OleVariant): OleVariant;const{一些常量声明,详细请参见adovbs.inc}
{---- CommandType的常量说明 ----}
adCmdUnknown = 0008;//未知,需要系统来判断,速度慢,为缺省值
adCmdText = 0001;//命令语句如SQL语句
adCmdTable = 0002;//数据表名称
adCmdStoredProc = 0004;//存储过程名称{---- CursorType的常量说明 ----}
adOpenForwardOnly = 0;//只能由前向后单向访问,为缺省值
adOpenKeyset = 1;//可见其他用户对数据的修改,但对其它用户的增加和删除不可见
adOpenDynamic = 2;//其他用户对数据的增加修改和删除均可见
adOpenStatic = 3;//其他用户对数据的增加修改和删除均不可见{---- LockType的常量说明 ---}
adLockReadOnly = 1;//只读,为缺省值
adLockPessimistic = 2;//在修改时,按单个记录锁定
adLockOptimistic = 3;//在修改后更新时,按单个记录锁定
adLockBatchOptimistic = 4;//在成批更新时记录锁定
var AConnection,ls_Result:Variant;
begin
        with DataDM do
        Begin
                EDIForm.ls_Sql:=ls_Sql;
                AConnection := CreateOleObject('ADODB.Connection');
                AConnection.Open(EDIForm.Conn1.ConnectionString);//'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=newGdfOA;Data Source=MOGO');                ls_Result := CreateOleObject('ADODB.RecordSet');
                //ls_Result.open('t_waitForDo',AConnection,adOpenStatic,adLockOptimistic,adCmdTable );                ls_Result.open(ls_Sql,AConnection,adOpenStatic,adLockOptimistic,adCmdText);
                //ls_Result := Q_t_waitForDO.Recordset;
        End;
        
        if ls_Result.Recordcout > 0 then
                Result := ls_Result
        Else
                Result := Unassigned;        
end;
各位大哥帮忙解决,谢谢!!