数据库是sql server 2000
因为使用
SQLStroedProc.ParamByName('@No').asInteger:=1;
出错,list Index out of bound(0);
好像dbExpress不能从服务器返回参数,只有自己创建
SQLStroedProc.StroedProcName:='MyProc';
SQLStroedProc.StoredProc.Params.CreateParams(ftInteger,'No',ptInput);
SQLStoredProc.StoredProc.ParamsByName('No').Asinteger:=1;
SQLStoredProc.StroedProc.Open;
出错:
list Index out of bound(0);怎么办??

解决方案 »

  1.   

    这个控件下的空间有好多问题,有许多方法不支持,尽管是delphi新一代
    数据引擎,不过,现在不完善,如果不是必需的,尽量不要用这个地下的
    控件,我曾经因为使用sybase数据库而用过这个咚咚,问题多多
      

  2.   

    存储过程绝对没有问题,因为用bde的控件可以顺利执行
      

  3.   

    完了,我跟踪源码发现,此控件实际有去服务器提取参数,不过
    好像总是不能正确返回,是delphi6 的bug?!
      

  4.   

    D6下有SQL SERVER的驱动吗?你的机器上是不是装了D7?用D7看看
    如果还不行,可以试试在调用参数前写上一行SQLStoredProc1.Prepared:=true;
    看看
      

  5.   

    在d7下可以了,但是又出现新问题,当执行的存储过程没有从数据库直接返回
    数据,而是以一个局部变量返回比如:
    select MyResult:=@MyData
    是,返回错误:cursor not returned from qurey.
    但我用bed的存储过程控件就可以啊??
    怎么回事??
      

  6.   

    你的这个存储过程是一个查询吗?如果这个存储过程要返回查询结果的话,最好配合clientdataset控件一起使用。
      

  7.   

    我用了simpleDataSet还是一样的结果。
    to:lzf1010,我如果直接返回查询结果的话,是不会有问题的