存储过程 总提示参数没被发现是怎么回事啊~ 特间单的一个东西。就是运行不了。请各位帮个忙。 ( 积分: 50 )

  • 主题发起人 majie_zhb
  • 开始时间
M

majie_zhb

Unregistered / Unconfirmed
GUEST, unregistred user!
CREATE PROCEDURE test
@ckmc char(30)
AS
select * from stock where DepotName=@ckmc
GO
//-----------------------上面就是那个储存过程。
//-----------------------下面就是调用的语句。
form1.ADOStoredProc1.ProcedureName:='test';
form1.ADOStoredProc1.Parameters.ParamByName('@ckmc').Value:=edit1.Text;
form1.ADOStoredProc1.Prepared:=true;
form1.ADOStoredProc1.ExecProc;
form1.ADOStoredProc1.Active:=true;
//===========================下面是错误提示
ADOStoredProc1:parameter'@ckmc'not found

//=============请大家可怜一下!都弄好长时间了也不行。用的delphi7没关系吧?
 
CREATE PROCEDURE test
@ckmc char(30)
AS
select * from stock where DepotName=@ckmc
GO
//-----------------------上面就是那个储存过程。
//-----------------------下面就是调用的语句。
form1.ADOStoredProc1.ProcedureName:='test';
form1.ADOStoredProc1.Parameters.ParamByName('@ckmc').Value:=edit1.Text;
form1.ADOStoredProc1.Prepared:=true;
form1.ADOStoredProc1.ExecProc;
form1.ADOStoredProc1.Active:=true;
//===========================下面是错误提示
ADOStoredProc1:parameter'@ckmc'not found

//=============请大家可怜一下!都弄好长时间了也不行。用的delphi7没关系吧?
 
ADOStoredProc1.Parameters 里面有参数么?
没有 你就添加
 
先在ADOStoredProc1.Parameters 里的参数随便设个初始值,就OK了
 
用 ckmc 就用了, 不用@ckmc
form1.ADOStoredProc1.Parameters.ParamByName('ckmc').Value:=edit1.Text;
 
由于你是动态设置ADOStoredProc1的,所以并不会生成静态的Parameters列表,必须在执行
form1.ADOStoredProc1.ProcedureName:='test';
form1.ADOStoredProc1.Parameters.add(.....

或者用Adoquery1来调用存储过程
form1.adoquery1.close;
form1.adoquery1.sql.clear;
form1.adoquery1.sql.add('exec test :para1');
form1.adoquery1.Parameters.ParamByName('para1').value:=edit1.Text;
form1.adoquery1.open;
 
to mk1024:
你说的方法我试过了。还是不行。
 
to QuickSilver:
可以具体点吗? form1.ADOStoredProc1.Parameters.add(.....????
不好意思。我特菜!举个例子也行。
 
点击adoStoredProc1的parameters属性,如果在弹出的窗口列表中没有见到参数,则手动添加一个参数,名字为@ckmc,datatype为ftstring就可以了
 
hotboys 呵呵~

我都疯了。都一下午了。还是不行。各种整都不行。就是ADOStoredProc1:parameter'@ckmc'not found
 
大家帮帮我啊~~ 怎么就是不行呢!! 晕死了
宁可卖房、卖地。哎~~
 
多人接受答案了。
 
顶部