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"去掉,则不会出现错误!
...全文
436 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
在先等

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧