with query1 do
begin
close;
sql.clear;
sql.Add('select * from ywslb where clbz="Y" order by convert(integer,ywlsh)');
//params[0].Value:=czybm;
prepare;
open;
end;
以上语句编译时没有问题,运行时出错,提示如下:
Project bkff.exe raised exception class EDBEngineError with message 'Invalid use of key word.
Token:(inteter,ywlsh)
Line Number:'1'.Process stoppen.Use Step or run to continue.
sql语句在Sql server上运行过是没有问题的,初步怀疑是编译器把Add里面的()双括号当做运算符了,这是什么问题啊?怎么解决?怎么样把括号和括号里的内容当字符传给Sql server 服务器?
begin
close;
sql.clear;
sql.Add('select * from ywslb where clbz="Y" order by convert(integer,ywlsh)');
//params[0].Value:=czybm;
prepare;
open;
end;
以上语句编译时没有问题,运行时出错,提示如下:
Project bkff.exe raised exception class EDBEngineError with message 'Invalid use of key word.
Token:(inteter,ywlsh)
Line Number:'1'.Process stoppen.Use Step or run to continue.
sql语句在Sql server上运行过是没有问题的,初步怀疑是编译器把Add里面的()双括号当做运算符了,这是什么问题啊?怎么解决?怎么样把括号和括号里的内容当字符传给Sql server 服务器?
改:
sql.Add('select * from ywslb where clbz='+''''+'y'+''''+' order by convert(integer,ywlsh)');
convert(integer,ywlsh), 你的数据库是否支持此关键字啊?
建议在数据库自带的查询分析器里试一试
convert??想必用的是SQL Server吧?
在SQL Server中,整型不是integer表示,是int~搞清楚~