关于query的错误:invald use of keyword (50分)

  • 主题发起人 主题发起人 han_wei
  • 开始时间 开始时间
H

han_wei

Unregistered / Unconfirmed
GUEST, unregistred user!
我用query查询parax表.keyword为No,
出错信息为:
'invald use of keyword
token No=?
line 1'

sql语句为:
query1.sql.clear;
query1.sql.add('select * from 表名 where No=:param');
query1.parambyname('param').asinteger:=strtoint(edit1.text);
query1.open;


这个问题如何解决,各位多多指点!!!
 
错误出在no上,local sql把它当作关键字了,
创建表的时候大概不是用的sql吧 :-)

改为:
select * from 表名 where 表名."No"=:param
 
同意温柔一刀的说法,一般经常会出现此类错误。如果字段没有写错,就有可能是把它当做关键字了。
 
又学了一招
 
写错了sql语句的关键字
 
的确是关键字问题,不过如果你用了updatesql控件的话,在updatersql
的sql属性中没有sql语句的话也会出现这种错误.
 
我按各位的意见试了一下,又有新问题了,
当用 表名."No" 时运行出错,提示信息为:
'invail field name
No'
这是什么原因?有烦劳大家了!!1
 
劝你把字段名改掉吧, 不然解决了这个问题可能又冒出其他问题了
 
改字段名吧,我第一开始也是用NO、Date作字段名,但总是出错,但换了之后就没事了,
或如温柔一刀说的,字段前加上表名!
 
我刚好也碰到这个问题,把NO改成其它的,这是最简便的方法,祝你好运.
 
多人接受答案了。
 
我用的字段名是中文名称,但是按以上方法还是出现些错误提示:
'invald use of keyword
token user
line 1'
sql语句为:
query1.sql.clear;
query1.sql.add('select * from 表名 where 表名."学校"=:school');
query1.parambyname('school').asstring:=edit1.text;
query1.open;
这个问题如何解决,请各位多多指点。

 
后退
顶部