你用ClientDataSet1的CommandText属性做,直接调用存储过程.(datasetprovider要设为allowchangecommand...)
例:
  clientdataset1.active:=false;
  clientdataset1.commandtext:="storeproc1";//这里写要存储过程的参数。
  clientdataset1.open;

解决方案 »

  1.   

    var
      ParamValue1:String
    begin
      with ADOQuery1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('EXECUTE StoreProcName '+ParamValue1) ;//StoreProcName存储过程名称 ParamValue1存储过程参数
        ExecSQL;
        Close;
      end;
    end;
      

  2.   

    tikkypeng(千两狂死郎) 
    我用的是ADOStoredproc
    怎么设呀
      

  3.   

    主要就是ADOStoredproc.Parameters的赋值老是出错
      

  4.   

    ADOStoredproc.Parameters.ParamByName('@Name').Value := Value;
    既然你要返回数据集,那么用
    ADOStoredproc.Open;
      

  5.   

    chechy(chechy):
                   wrong!
      

  6.   

     我有一个例子.基本符合你的要求.ADO连接,客户端可写 SQL语句发送到服务器端执行
    是三层结构的.在单机,网络情况下均测试通过.在Delphi5.0下编译ok.需要的话请尽快!!!
    联系[email protected]
      

  7.   

    chechy(chechy):
    错误窗口显示如下:
    Error
          Project Project2.exe raised exception class EDatabaseError with 
          message 'ADOStoredProc1:Parameter'@tbdh_client' not found'.
          Process stopped. Use Step or Run to continue.
      
                   
      

  8.   

    你的存储过程是运行的时候设置的吗?如果是的,我想应该自己创建这些参数,比如:
    with ADOStoredProc1.AddParameter do begin
      DataType := ftString;
      Direction := pdInput;
      Value := '@tbdh_client';
    end;
      

  9.   

    谢谢chechy(chechy)
    这个我想过,也试过,但是
    [Error] Unit1.pas(514): Undeclared identifier: 'AddParameter'
      

  10.   

    Delphi的帮助有问题,我直接拷贝,没有仔细看,应该是:
    ADOStoredProc1.Parameters.AddParameter 
      

  11.   

    把value改为name后,可以查询了
    但是只能执行一次,第二次就出错
    是不是该有个参数清除的操作,如果有,是什么?
      

  12.   

    谢谢chechy(chechy)的大力相助
    请给看一下我刚发的问题
      

  13.   

    你不会第二次又Add一遍吧?只要Add一次就够了。
      

  14.   

    有没有这么复杂哦,一定要按顺序,先设参数,再给实参,最后OPEN,,如果还不行,全部重来一次
      

  15.   

    我想不能,既然连接的时候不能主动创建参数,那么关闭的时候也不会主动清空参数。还是用程序:
    ADOStoredProc1.Parameters.Clear
      

  16.   

    Error:"Either BOF or EOF is true....."
    为什么会这样?
    不是已经关闭了,才打开的吗?
      

  17.   

    哈哈,又中招了。请安装ADO UPDATE PACK2,这个补丁在www.borland.com上找,Delphi很有名的BUG。
      

  18.   

    要么你把系统的ADO降到ADO 2.1。这样系统就不会出这个错误了。
    或者,你辛苦一下,这里问序列号的帖子很多。
      

  19.   

    Jneu 得 1分
    Jneu 得 1分
    afeisky 得 5分
    Tense 得 1分
    tikkypeng 得 40分
    chechy 得 5分
    coolbaby 得 1分
    chechy 得 1分
    lwm8246 得 5分
    chechy 得 30分
    chechy 得 20分
    josephlong 得 1分
    chechy 得 1分
    skypeople 得 1分
    yxjjx 得 1分
    chechy 得 1分
    chechy 得 20分
    chechy 得 20分
    chechy 得 6分
    给出总分:161
      

  20.   

    chechy
          给了你104分,我没食言(100分求一段实现程序)