CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

让我困惑的一个问题!

楼主shxyz(shxyz)2004-12-03 17:52:12 在 Delphi / VCL组件开发及应用 提问

我在用以下update语句对数据库进行更新时会发生错误,SQL语句如下:  
  sNewSql:='update   HolderData     set   CardNo='+   CardNo   +'   where   HolderNo='+   nHolderNo;  
  说"列名无效".  
  改成如下就可:  
  sNewSql:='update   HolderData   set   CardNo='+   CardNo   +'   where   HolderNo='''+   nHolderNo+'''';  
  我不明白为什么会这样,这个nHolderNo是string类型,CardNo也是string类型,为何CardNo就不需要加"",  
  而nHolderNo就必须两边加""才可以呢?请各位帮我解释一下.  
  问题点数:10、回复次数:8Top

1 楼shxyz(shxyz)回复于 2004-12-03 19:40:22 得分 0

大家来帮我看看吧!Top

2 楼g961681(技术庸人(情商太低))回复于 2004-12-03 20:55:27 得分 0

你数据库中相应的字段是什么类型啊!Top

3 楼g961681(技术庸人(情商太低))回复于 2004-12-03 20:57:49 得分 10

你这里为了构造Update语句,当然两个变量都得是String了,不然你怎么构造SQL语句呢。  
  你前后两种写法生成的Sql语句不一样的。  
  上面一句生成  
  update   HolderData     set   CardNo=   111   where   HolderNo=3333  
  而下面一句则生成  
  update   HolderData     set   CardNo=   111   where   HolderNo='3333'Top

4 楼shxyz(shxyz)回复于 2004-12-03 21:22:35 得分 0

对应数据库里的字段是varchar类型的,  
  知道两种写法生成的SQL语句是不一样的,但不明白从意义上有什么不同,什么时候该以第一种方式写,什么时候必须按第二种方式写呢Top

5 楼g961681(技术庸人(情商太低))回复于 2004-12-03 21:26:12 得分 0

两种类型都是Varchar吗?Top

6 楼shxyz(shxyz)回复于 2004-12-03 21:30:39 得分 0

是的Top

7 楼shxyz(shxyz)回复于 2004-12-03 22:16:00 得分 0

upTop

8 楼shxyz(shxyz)回复于 2004-12-04 09:22:51 得分 0

up  
  Top

相关问题

  • 我好困惑!
  • 我的困惑?
  • 我的困惑
  • 我的困惑
  • 我的困惑
  • 我的困惑
  • 困惑的我
  • 我的困惑!
  • 我的困惑
  • 我的困惑!

关键词

  • 语句
  • cardno
  • nholderno
  • 生成
  • update holderdata
  • 类型
  • where holderno
  • set

得分解答快速导航

  • 帖主:shxyz
  • g961681

相关链接

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

广告也精彩

反馈

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