TADOStoredProc调用MYSql存储过程问题

ljking0731 2011-09-23 10:44:34
TADOStoredProc调用MYSql存储过程,怎么老是报错,难道不兼容。
1.
Proc.Parameters.Items[Index].Value := Value;
2.
proc.Parameters.ParameterByName().value := value;

以上两种方式调用都有问题。
...全文
66 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
W9757 2011-09-23
  • 打赏
  • 举报
回复
数据类型是否一致是关键.

with sp1 do
begin
close;
Prepared:=false;
ProcedureName:='cp_jccxkhbh;1';
Parameters.Refresh;
Parameters.ParamByName('@khph').Value:=Trim(cxLookupComboBox3.Text);
Open;
end;

ljking0731 2011-09-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 moshao6 的回复:]
http://topic.csdn.net/u/20101229/14/b43be0da-1d32-40c7-b458-1c078031b002.html

看下这个
[/Quote]

可以了,谢谢哈。
ljking0731 2011-09-23
  • 打赏
  • 举报
回复
跟踪了下。

ADOStoredProc1.Parameters.count=0


看了MYSQL不能这样调用存储过程
moshao6 2011-09-23
  • 打赏
  • 举报
回复
ADOStoredProc1.Parameters.ParamByName('_Sender').Value := 'Test';
......


proc_HZChatRecLo( )括号里是什么,调用是就用什么
ljking0731 2011-09-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 moshao6 的回复:]
错了你不知道吗? 存储过程里是什么名字,你就用什么名字,1楼的是mssql的


SQL code

PROCEDURE `proc_HZChatRecLog`(IN _Sender varchar(20), IN _SIP varchar(15), IN _Accepter varchar(20),
IN _AIP varchar(15), IN _Msg varc……
[/Quote]

试过了,用_SIP, SIP,或是@SIP, 或是@_SIP都不行
moshao6 2011-09-23
  • 打赏
  • 举报
回复
错了你不知道吗? 存储过程里是什么名字,你就用什么名字,1楼的是mssql的

PROCEDURE `proc_HZChatRecLog`(IN _Sender varchar(20), IN _SIP varchar(15), IN _Accepter varchar(20),
IN _AIP varchar(15), IN _Msg varchar(3000))

ljking0731 2011-09-23
  • 打赏
  • 举报
回复
MYSql存储过程这么定义的。

PROCEDURE `proc_HZChatRecLog`(IN _Sender varchar(20), IN _SIP varchar(15), IN _Accepter varchar(20),
IN _AIP varchar(15), IN _Msg varchar(3000))
BEGIN
SET _Msg=replace(_Msg, '&*', '');
IF RTRIM(_Msg) <> '' THEN
insert into TABHZChatLog(Sender, SenderIP, Accepter, AccepterIP, Msg, CreateTime) values
(_Sender, _SIP, _Accepter, _AIP, _Msg, Now());
END IF;
END

delphi这么调用的:


ADOStoredProc1.ProcedureName := 'proc_HZChatRecLog;1';
ADOStoredProc1.Close;
ADOStoredProc1.Prepared := False;
ADOStoredProc1.Parameters.ParamByName('@Sender').Value := 'Test';
ADOStoredProc1.Parameters.ParamByName('@SIP').Value := '132323';
ADOStoredProc1.Parameters.ParamByName('@Accepter').Value := 'aaaaaaa';
ADOStoredProc1.Parameters.ParamByName('@AIP').Value := '6666666';
ADOStoredProc1.Parameters.ParamByName('@Msg').Value := 'asdfsdf';
ADOStoredProc1.ExecProc;


提示 @Sender not found

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧