我在用以下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就必须两边加""才可以呢?请各位帮我解释一下.
sNewSql:='update HolderData set CardNo='+ CardNo +' where HolderNo='+ nHolderNo;
说"列名无效".
改成如下就可:
sNewSql:='update HolderData set CardNo='+ CardNo +' where HolderNo='''+ nHolderNo+'''';
我不明白为什么会这样,这个nHolderNo是string类型,CardNo也是string类型,为何CardNo就不需要加"",
而nHolderNo就必须两边加""才可以呢?请各位帮我解释一下.
解决方案 »
- 急..麻烦大家帮我看看这个adoconnection 连接 sql 出现下面的错误,能告诉我怎么处理吗
- 兄弟们,我再问个小问题,你们总不能再让我失望吧?
- 谁有GraphicEX控件文件?
- 三层模式+Oracle8i(关于序列的问题,高手请进)
- delphi中提示A class named TfrxDMPPage already exists该如何解决
- 哪位老兄帮帮我!!!
- 要写一个测试无盘机器的稳定情况,请各位给点意见。
- 为什么这段代码不能实现往数据库中添加记录?
- 数据录入问题
- 关于Delphi6的DbExpress
- 用DrawText函数画字时字体大小是根据什么来的?
- 如何将onKeyDown中的代码移植到onKeyPress中
你前后两种写法生成的Sql语句不一样的。
上面一句生成
update HolderData set CardNo= 111 where HolderNo=3333
而下面一句则生成
update HolderData set CardNo= 111 where HolderNo='3333'
知道两种写法生成的SQL语句是不一样的,但不明白从意义上有什么不同,什么时候该以第一种方式写,什么时候必须按第二种方式写呢