Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1 ??!!

cbc 2006-04-21 10:30:30
代码如下:
with ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select source,money,date,note from gz where type="in"');
open;
end;

若把where type="in"去掉,则不会出现错误!
...全文
388 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Rubi 2006-04-24
in 是关键字阿!

CSDN论坛浏览器:http://CoolSlob.ys168.com/
回复
hxshaou 2006-04-24
佩服keiy(),
回复
柯本 2006-04-24
slzzg(懒虫)说的基本没错,只是不是因为Delphi不支持双引号作为字符引起的,而是因为odbc for access 不支持双引号作为字符引起的,改用ado没问题
如果用access数据库,最好用ado,一是因为odbc是较老的数据引擎,二是delphi用odbc是通过bde的,在其它机上运行要将bde一起打包安装,而ado不用
回复
slzzg 2006-04-24
sql.Add('select source,money,date,note from gz where type="in"');

这个语句中""是双引号。而不是单引号。
Delphi好像不支持双引号作为字符。

语句改为:
sql.Add('select source,money,date,note from gz where type=''in''');
编译通过。
回复
gulf1234 2006-04-23
我在ACCESS中直接写了这样的语句,没有问题,In虽然是关键字,但是在引号里,没有关系。
所以有可能像楼上说的那样,你是不是用的两个单引号啊?不能用双引号的。
回复
老之 2006-04-23
将双引号改成两个单引号就行了。
sql.Add('select source,money,date,note from gz where type=''in''');

或者别用ODBC Drivers用Jet 4.0 OLE DB来连数据库
回复
cbc 2006-04-23
up
回复
china618 2006-04-23
'select source,money,date,note from gz where type="in"'
改成
'select source,money,date,note from gz where type='''+'in'+''''
回复
cbc 2006-04-21
type是一个字段名,不是关键字
回复
hxshaou 2006-04-21
type是不是关键字呀。换一个字段名试试
回复
cbc 2006-04-21
up
回复
cbc 2006-04-21
在先等
回复
发帖
数据库相关
创建于2007-08-02

2451

社区成员

Delphi 数据库相关
申请成为版主
帖子事件
创建了帖子
2006-04-21 10:30
社区公告
暂无公告