DELPHI的重大BUG!(0分)

  • 主题发起人 主题发起人 yanliang
  • 开始时间 开始时间
Y

yanliang

Unregistered / Unconfirmed
GUEST, unregistred user!
晚上我发现了一个DELPHI的重大BUG,简直浪费了两个小时!
我建立了一张表tree,里面有两个字段ID和 Level,两个均是A型,长度是3.
我想查找出Level为3的所有记录,就用下面的语句查询:
str:=intTostr(1);
query1.close;
query1.sql.clear;
query1.sql.add('select * from where level="'+str+'"');
query1.open;
竟然出错!
这个语句我用了好几年了,从来没有错过,今天怎么会错呢?
我反复实验,但总是有问题。一个偶然的机会,我把对查询中的"Level"该为"ID",
执行后竟然对了!后来我又把"Level"改为"CurLevel",执行也正确。
我再改回去,执行又错了!
我不禁愕然!原来不能用Level作为字段名!
这是为什么 ?
 
不会吧?你用的是Paradox?
没见过,我去试试……
 
query1."level" 也没问题。
level,name等不能直接用做字段名。好象no也不行。
 
query1.sql.add('select * from 表名 where level="'+str+'"');
是否忘记表名???
 
老兄,Level是数据库关键字,查查帮助就知道了,我以前也用她做过字段名,现在
改用LQuan了.

To:Kylix㊣
Paradox可以用Level
SQL SEVER不能,Level在其中有明确定义.
 
关键字当然不能用
 
>>Paradox可以用Level
Paradox不能用Level!我用的就是Paradox!
 
尽量避免使用与关键字重合的变量名。
 
天了!
这种事,怎么我没遇到过!
我开始怀疑我的水平了!
 
用:[Level]
(SQL)
 
这你都不知道,Access与sqlserver的sql语法是不一样的,
你把''''代替'"'去试试,肯定可以。
还有自己不懂,别说delphi不好!!!
 
还有这并不是什么字段错误,是sql写法不对,(虽然是报字段错误)你改了就可以了
 
to yanliang :level 不是保留字吗?你怎么这样用?
to kevincsg:我看不明白你的' " 和DELPHI中那个单引号,我在SQL SERVER 中插入数据时
碰到引号总是报错,你的是什么的呀?
 
就算是关键字也一样可用!!!
在用SQL语句建PARADOX表时,我用'USER','ID','DATE'等也是关键字,刚开始
也提示出错,后来把表名和字段名全部用引号括起来就可以了,还有问题可来
信谈:GENG7758@163.NET
 
To kevincsg:
靠!什么自己不懂?
你用过DELPHI没有?
毛主席教导我们:实践出真识,没有实践就没有发言权!
 
to 旧雨
其实sqlserver中并不支持双引号,所以总是报错,它并不象Access等中的sql用法,
比如在Access中这句话可以(select * from xxx where field like "%variant%")
可在sqlserver中就报错,但如果你改成这样就可以了
(select * from xxx where field like '%variant%')
 
接受答案了.
 
后退
顶部