CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

我的存储过程为什么不能循环执行

楼主catling00(宁静致远)2003-12-03 15:59:15 在 MS-SQL Server / 基础类 提问

我在应用程序中调用了一个添加记录的存储过程,可是第一篇执行时成功了,但再继续添加一个新的记录就报错。为什么啊?是不是我的存储过程写得有问题啊?存储过程如下:  
  CREATE   PROCEDURE   add_sch    
  @code   int,  
  @name   varchar(10),  
  @addr   varchar(50),  
  @note   varchar(50),  
  @flag   varchar(1),  
  @ReturnNum   int   output  
  AS  
  set   @ReturnNum   =   0  
  if   @@error<>0   return   @ReturnNum  
  else  
  begin  
  insert   into   schools(sch_code,sch_name,sch_addr,sch_note,flag)    
  values(@code,@name,@addr,@note,@flag)  
   
  select @ReturnNum   =   1  
  return @ReturnNum  
  end  
  GO  
  问题点数:0、回复次数:11Top

1 楼catling00(宁静致远)回复于 2003-12-03 16:02:26 得分 0

刚刚打错了,是第一遍执行成功了。Top

2 楼wzh1215(懒猫)回复于 2003-12-03 16:04:30 得分 0

不大明白,你的@ReturnNum即做输出参数又做返回参数干嘛!Top

3 楼catling00(宁静致远)回复于 2003-12-03 16:06:31 得分 0

做输出参数就是为返回服务的,因为应用程序要根据存储过程返回的参数来判断,做出相应的动作  
  Top

4 楼CrazyFor(冬眠的鼹鼠)回复于 2003-12-03 16:12:45 得分 0

报什么错误???Top

5 楼wzh1215(懒猫)回复于 2003-12-03 16:19:05 得分 0

 
  --把你的过程改了下,看看对不对,code作为主键  
  CREATE   PROCEDURE   add_sch    
  @code   int,  
  @name   varchar(10),  
  @addr   varchar(50),  
  @note   varchar(50),  
  @flag   varchar(1),  
  AS  
  declare   @result   int  
          if   not   exists(select   1   from   schools   where   code=@code)  
  begin  
  insert   into   schools(sch_code,sch_name,sch_addr,sch_note,flag)    
  values(@code,@name,@addr,@note,@flag)  
                                      set   @result=1  
  end  
          else  
                    begin  
                                      set   @result=0  
                      end  
  return   @result  
  GOTop

6 楼LoveSQL(努力奋斗ing)回复于 2003-12-03 16:26:30 得分 0

错误的原因有可能是你往表里插入第二条数据的时候,造成表的主键值不唯一或外键冲突,  
  检查一下看看。。。。。。Top

7 楼catling00(宁静致远)回复于 2003-12-03 16:29:42 得分 0

报错“List   index   out   of   bounds(3)”  
   
  to:wzh1215  
  语法出错,在AS附近  
  Top

8 楼catling00(宁静致远)回复于 2003-12-03 18:16:55 得分 0

to:wzh1215(四脚蛇)  
  改了一下用你的这段语法检查通过了。可是仍然不能二次添加记录。  
   
  各位高手老师们:报错“List   index   out   of   bounds(3)”是什么原因啊???Top

9 楼azsoft(Try my best)回复于 2003-12-03 20:10:12 得分 0

控件的List溢出Top

10 楼catling00(宁静致远)回复于 2003-12-05 15:42:50 得分 0

我用的是C++Builder,我用到的控件都没有List属性啊。快快,大家帮帮忙啊,我个问题已经困扰我三天了!谁帮我找出来问题所在50分全都给他(她)。Top

11 楼catling00(宁静致远)回复于 2003-12-05 15:43:46 得分 0

是不是存储过程中还要添加什么命令啊?我不是很熟啊。帮帮忙。先谢谢了  
  Top

相关问题

  • 怎样循环执行存储过程
  • 为何不能执行存储过程?
  • 存储过程的调试,能不能在存储过程执行过程中弹出一对话框
  • 在存储过程中这条语句怎么不能执行!
  • Oracle 的存储过程在sql pluss 为什么不能执行?
  • SQLSERVER的存储过程为什么在PB不能执行??
  • 为什么我不能执行存储过程?
  • PB下不能执行有临时表的存储过程??
  • 网站发布后不能执行存储过程的问题
  • 存储过程中能不能有循环的?

关键词

  • 存储过程
  • code
  • sch
  • returnnum
  • 报错
  • 参数
  • 添加
  • varchar
  • note
  • flag

得分解答快速导航

  • 帖主:catling00

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo