...    cmdTemp:=TADOCommand.Create(self);
...
   看你后面使用的是存贮过程,
   试试加上这句..
    cmdTemp.CommandType:=cmdStoredProc;...

解决方案 »

  1.   

    请问这个Recordset由谁建立。由谁来销毁?Delphi不是VB,所以它不会做这些事。可以这样写
    function TdmGlobal.ExeSqlRet(strConn,strSql: string): _Recordset;
    Var
    Data              : _Recordset;
    BEGIN
       Data := CoRecordset.Create();
       TRY
        TRY
          Data.CursorLocation := adUseClient;
          Data.Open(strSQL, strConn,
           adOpenKeyset, adLockBatchOptimistic, adCmdText);
          Data.Set_ActiveConnection(NIL);
           Result := Data;
        EXCEPT
            RAISE;
        END;
      FINALLY
        Data := NIL;
      END;
    END;
      

  2.   

    我是本意思是在这个函数里面执行如下的功能:
    1。和后台连接
    2。执行命令,然后返回结果。
    3。断开和后台的连接result:=cmdTemp.Execute;这句话不能创建一个_Recordset吗?
    我想可能是这个函数一结束,所创建的变量就被销毁了,所以才不能返回,是不是这样啊?