在三层结构中,如何去调用存储过程,我用如下方法,没有成功
clientdataset.commandtext:='exec 存储过程名 输入参数,输出参数';
clientdataset.execute;
showmessage 输出参数
什么也没有?请问应该如何实现?

解决方案 »

  1.   

    我是用 adoStoredProc 来调用。用法跟 adoQuery 基本类似
      

  2.   

    调用存储过程的例子:
    建立的method:
    procedure ryts(_fh, _gh, _xm: OleVariant; _rq: TDateTime); safecall;中间层:
    procedure Trskqglxt.ryts(_fh, _gh, _xm: OleVariant; _rq: TDateTime);
    begin
    ADOryts.Edit;
    ADOryts.Parameters[1].Value:=_fh;
    ADOryts.Parameters[2].Value:=_gh;
    ADOryts.Parameters[3].Value:=_xm;
    ADOryts.Parameters[4].Value:=_rq;
    ADOryts.Prepared;
    ADOryts.ExecProc;
    ADOryts.Post;
    end;客户端:datamodule1.Clientryts.close;
    datamodule1.SocketConnection1.AppServer.ryts(trim(edit1.Text),trim(edit2.text),trim(edit3.text),datetimepicker1.Date);
    datamodule1.Clientryts.Open;
      

  3.   

    请问,客户端程序是不是有误,
    datamodule1.Clientryts.close;
    datamodule1.SocketConnection1.AppServer.ryts(trim(edit1.Text),trim(edit2.text),trim(edit3.text),datetimepicker1.Date);//这句是不是有问题?
    datamodule1.Clientryts.Open;
    我是不成功,请继续指点,谢谢