CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

莫名其妙的错误:SQL语句

楼主wgzhou747217(蔡鸟)2002-03-01 00:49:35 在 Delphi / VCL组件开发及应用 提问

我写了一个存储过程如下:  
  CREATE   PROCEDURE   [test]  
  @flag   varchar(1),  
  @condition   varchar(50)=''  
  as  
  begin  
  declare   @sqlstr   varchar(50),@field   varchar(50)  
      if   @flag='1'  
          begin  
                set   @field='*'  
                set   @sqlstr='select'+@field+'from   employee   '+'   where   job_id>10'  
                exec(@sqlstr)  
           
        end  
      if   @flag='2'  
          begin  
              set   @field='fname,fname,job_id   '  
              set   @sqlstr='select   '+@field+   '   from   employee'+'   where   job_id>10'  
              exec(@sqlstr)  
          end  
       
  end  
   
  当flag=2时  
  出现‘Incorrect   syntax   near   'job''  
  当我把set   @field='fname,fname,job_id   '   改为:  
  set   @field='fname,job_id   '时,没有出错  
  当我把set   @sqlstr='select   '+@field+   '   from   employee'+'   where   job_id>10'改为:set   @sqlstr='select   '+@field+   '   from   employee'时,也没有出错  
  头痛,真不知道是哪里的问题!!!!!!  
  请哪位大虾指点一二  
  问题点数:100、回复次数:8Top

1 楼wgzhou747217(蔡鸟)回复于 2002-03-01 09:14:32 得分 0

 
              if     @flag='2'  
                      begin  
                              set     @field='fname,fname,job_id     '  
                              set     @sqlstr='select     '+@field+     '     from     employee'+'     where     job_id>     10'  
                              exec(@sqlstr)  
                      end  
               
      end  
       
      当flag=2时  
      出现‘Incorrect     syntax     near     'job''  
      当我把set     @field='fname,fname,job_id     '     改为:  
      set     @field='fname,job_id     '时,没有出错  
      当我把set     @sqlstr='select     '+@field+     '     from     employee'+'     where     job_id>     10'改为:set     @sqlstr='select     '+@field+     '     from     employee'时,也没有出错  
      头痛,真不知道是哪里的问题!!!!!!  
      请哪位大虾指点一二  
  Top

2 楼Rewiah(乘长风)回复于 2002-03-01 09:21:31 得分 100

问题有两个:  
  1、declare     @sqlstr     varchar(50),50不够,改为200就没有错误了,这个是主要问题。  
  2、set         @field='fname,fname,job_id         '有两个fname,虽然不出错,但在客户端处理时会比较麻烦,建议改为  
  set         @field='fname,fname   as   fname1,job_id         '  
   
   
  Top

3 楼Rewiah(乘长风)回复于 2002-03-01 09:24:32 得分 0

再说说你的问题3  
  你的这个存储过程问题一定头痛了很长时间了,为什么只给20分,给多点可能早解决了!Top

4 楼SQL79(飘忽不定的影子)回复于 2002-03-01 09:31:04 得分 0

job_id可能为关键字!用[job_id]吧!Top

5 楼wgzhou747217(蔡鸟)回复于 2002-03-01 09:31:15 得分 0

好  
  Rewiah,给你加系统所接受的最高分100Top

6 楼taber(李沉舟)回复于 2002-03-01 09:31:39 得分 0

帮你up一下吧Top

7 楼Rewiah(乘长风)回复于 2002-03-01 09:39:31 得分 0

呵呵,和你开个玩笑,你就当真了?!  
  关键,对了没有!Top

8 楼wgzhou747217(蔡鸟)回复于 2002-03-01 10:24:12 得分 0

我是新手,不懂的问题很多,所分不敢给大Top

相关问题

  • SQL语句错误
  • sql语句错误!
  • sql 语句错误!
  • 在线等:急救-Update语句莫名其妙的错误
  • sql语句错误~~问题
  • SQL语句提示错误。
  • sql 语句出现错误!
  • SQL 语句出了错误!!!!!!!!!!!!!!
  • Sql语句找错误!!!
  • 求助:sql 语句错误。

关键词

  • fname
  • sqlstr
  • job
  • 出错
  • 改为
  • field
  • flag
  • 问题
  • varchar
  • exec

得分解答快速导航

  • 帖主:wgzhou747217
  • Rewiah

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

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