我用ADODataset控件连接SQLServer2000中的一个存储过程
存储过程语句是:
CREATE PROCEDURE selectstyle 
@brand varchar(20)
 AS
select distinct style
from shoes
where brand=@brand
GO
我想用一个字符型变量向该过程赋值,但是老是出现
"parameter'@brand' not found"
在ADODataset控件中的parameters中直接赋值时则出现:
selectstyle需要参数'@brand',但未提供。
如果用查询分析器运行带参量的存储过程则是正常出结果。
总之好象是在存储过程定义的参数总是不能与应用程序交换数据一样。请问高手如何解决。

解决方案 »

  1.   

    调用如下:selectstyle 参数值
      

  2.   

    赋值语句是:ADODataSet1.Parameters.ParamByName('@brand').Value:=edit1.Text;
    我的ADODataset控件是放在DataModule里面的,同时里面还有一个ADOConnection控件,ADODataset是通过ADOConnection直接连到数据库中。不过我另外试了要一个新的工程中,也是用了上面的设定,没有问题,但是把新工程的赋值语句照过原来的工程中还是不行,后来我只好用设ADODataset.CommadType:=cmdText;ADODataset.Commandtext:='存储过程语句',动态为SQL语句赋值来完成。
      

  3.   

    SORRY,我看错了,应该是另外开一个新的项目也不行,还是提示:"parameter'@brand' not found"
    或者是
    selectstyle需要参数'@brand',但未提供。一般用ADODataSet调用带参数的存储过程,并在运行中动态赋值的情况,你们是怎样实现,举个例子看看。
      

  4.   

    现在终于搞清楚了,在参数赋值前一定要用refrash方法刷新数据控件的信息。
      

  5.   

    仔细检查@brand的类型大小是否添上了