我的这句SQl语句为什么会出错?急死我了,快来帮忙啊!(10分)

  • 主题发起人 主题发起人 jh924
  • 开始时间 开始时间
J

jh924

Unregistered / Unconfirmed
GUEST, unregistred user!
query1.Sql.Add('select * from project_info where object_name="张三" ');
为什么写成字符串的时候运行不过去呢/??!!!
可是我写成where Object="27"')却能通过。 这是为什么???
 
不会吧?没有错呀,你是不是别的地方出的错?
 
query1.Sql.Add('select * from project_info where object_name=''张三'' ');
虽然可能不是原因,但是最好使用“'”,这东西比较可靠。[:D]
 
语句没错,可能其它的地方错了吧
 
我用几乎同样的语句试了,没问题呀,可能其他地方错了!
 
你的object_name字段的类型是什么类型的,是不是数值型的,那当然不可通过的,语句完全没问题
或者你在写这句这前query1.Sql.Add('select * from project_info where object_name="张三" ');
没有调 用query1.sql.clear;
 
你用的是oracle吧这样写是不行的用‘’字符比较合适
yzshi 说的不错不信你试试
 
‘’是 ''''
 
yzhshi,这位仁兄说的对。我把2个双引号变成4个单引号之后就可以了。
但是可奇怪了!!!我以前全是用的双引号,都能运行啊~!!!
什么情况下该把1个双引号变成2个单引号呢????
 
看一下帮助吧:
一个:' 错误
两个:'' 一个空字符
三个:''' 错误
四个:'''' 一个'字符
 
这东西就这样,有的时候可以,有的时候不行。
甚至我在SQL分析器里面运行也出现过"和''的问题。没有仔细追究。
使用Oracle,我就没有实验过",不过搞笑的是有时表明写成小写字母它就不执行,也说不出什么问题。
也没有仔细研究。[:)]
 
对了,应该建议你使用Format函数,这样能够减少很多出错几率。
尤其是赋值字段比较多的场合。
Const Select_SQL='Select * from a where a.a1=''%s'',a.b1=%d,a.c1=''%s''';
Format(Select_SQL,['a1',1,'b1']);
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
642
import
I
I
回复
0
查看
709
import
I
后退
顶部