在存储过程的delete中使用传入的参数出错

wzhawsa 2010-06-30 04:39:39
在mysql中的存储过程中,delete使用了传入的参数,出现Lost connection to MySQL server during query错误。但是在insert中使用传入的参数不会出错。请教高手。
...全文
122 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2010-07-01
  • 打赏
  • 举报
回复
建议贴出你的CREATE TABLE语句,CREATE PROCEDURE语句,另外提供一些测试用例。这样别人可以直接在本机上模拟你的故障以分析。

建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html

1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)

这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。

wzhawsa 2010-07-01
  • 打赏
  • 举报
回复
在存储过程中不用传进来的参数,直接写字段的值就可以删除。还有就是用参数的话,如果有那天纪录,delete的时候就出现Lost connection to MySQL server during query。
zuoxingyu 2010-06-30
  • 打赏
  • 举报
回复
看看错误日志。有些什么信息。
wzhawsa 2010-06-30
  • 打赏
  • 举报
回复
const char* str_sql = "call rect.test('2','1','2','4','2','1',@a,@b,@c);";
这是调用存储过程的sql
wzhawsa 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 acmain_chm 的回复:]
你可以先直接在MYSQL中试验一下call xxxxx(....) 看看需要多久。
[/Quote]
时间肯定不会长,花费的时间几乎可以忽略。
wzhawsa 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 acmain_chm 的回复:]
你的C语言的代码是什么? 一般是过长时间的执行SQL语句会出现这些错误。
[/Quote]
c代码不改,如果把delete from YHQHS where syscdm=vscdm and symdh=vmdh and syxph=vxph and sysyjh=vsyjh;
这几个参数改成具体的值,就不会出错。
ACMAIN_CHM 2010-06-30
  • 打赏
  • 举报
回复
你可以先直接在MYSQL中试验一下call xxxxx(....) 看看需要多久。
ACMAIN_CHM 2010-06-30
  • 打赏
  • 举报
回复
你的C语言的代码是什么? 一般是过长时间的执行SQL语句会出现这些错误。
wzhawsa 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wwwwa 的回复:]
SP代码是什么
[/Quote]
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET bg_all = 1;
begin
SET ret=1;
SET ret2=1;
SET onetime_row=10;
SET read_int=300;
SET begin_pos=1;
insert into A value(sysdate(),vmdh);
if (VXSXPSTR is null ) OR (VXSXPSTR='') then
SET ret2=0;
SET rmsg='no xsxp input';
else
select CSZ into vscdm from XTCS where CSM='SCDM';
delete from YHQHS where syscdm=vscdm and symdh=vmdh and syxph=vxph and sysyjh=vsyjh;
/*insert into YHQHS(syscdm,symdh,syxph,sysyjh) values(vscdm,vmdh,vxph,vsyjh);
delete from `XSXPB` where scdm=vscdm and mdh=vmdh and xph=vxph and syjh=vsyjh ;
delete from `XSXPFKFS` where scdm=vscdm and mdh=vmdh and xph=vxph and syjh=vsyjh ;
delete from `YHQMXB` where scdm=vscdm and mdh=vmdh and xph=vxph and syjh=vsyjh ;*/
end if;
end;

end
WWWWA 2010-06-30
  • 打赏
  • 举报
回复
SP代码是什么
wzhawsa 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wwwwa 的回复:]
代码是什么?
[/Quote]
Linux 用c调用存储过程
WWWWA 2010-06-30
  • 打赏
  • 举报
回复
代码是什么?

56,937

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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