当前位置:主页>销售管理软件> 列表

关于用ADOQuery链接ACCESS数据库,使用sql语 找用友客户管理软件

仓库管理软件版1楼: 请问高手:
ACCESS的sql语句:
select * from Table where A is null
select * from Table where A=1
在ADOQuery中怎么写呢?如果只是把上面的两句话搬过去,编译的时候不会出错,但实现不了查询的功能,而且运行exe文件的时候会报错“from子句语法错误”。
这是怎么回事呢?请教大侠!!

2楼: Select * from Table Where A is null or A=1 如用友进销存

3楼: 我是问这两句话在ADOQuery中分别怎么写。3X!!

4楼: 没有问题

你要实现什么功能啊?

5楼: 如果是数值型.
ADOQry.close;
ADOQry.SQL.Text := ''select * from Table where A=1'';
ADOQry.Open;
字符型
ADOQry.SQL.Text := ''select * from Table where A=''''1'''''';

6楼: 字符型
ADOQry.SQL.Text := ''select * from Table where A=''''1'''''';

仓库管理软件版7楼: 那这一句呢
select * from Table where A is null

8楼: 直接写吗.如果不行的话,试试:
ADOQry.SQL.Text := ''select * from Table where A='''''''''';

9楼: 借楼主的宝地一用(ado 连接access):
with form1.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add(''select * from username where namej=''+#39+trim(edit1.Text)+#39+'' and pass=''+#39+trim(edit2.Text)+#39);
open;
end;

if form1.ADOQuery1.RecordCount>0 then
begin
with form1.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add(''update username set pass=''+#39+trim(edit3.Text)+#39+'' where namej=''+#39+trim(edit3.Text)+#39);
execsql;
end;
我这句执行select 语句没问题,但执行update语句出现了"数据集不可编辑"的提示,晕了。各位帮帮我看

10楼: 楼上的方法都试过了,执行的时候还是报错‘from子句语法错误’

11楼: 你把具体代码贴出来以便大家分析

12楼: ''select * from Table where A is null or A="1" 如饭店管理软件下载

13楼: 提个醒
Table是保留字

仓库管理软件版14楼: 我已经用ADOQuery连接了一个本地ACCESS数据库,表名是SM,现在想把表中A和B字段部分没有填入值的记录显示出来,A、B字段的属性是数字。在ACCESS里试过:


select * from SM where (A is null and B is null) 成功了。
但是把这句话写在sql里让ADOQuery执行就不能实现。具体代码如下:
var
sql:string;
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
sql:=''select * from SM where(A is null and B is null)'';
ADOQuery1.SQL.Add(sql);
ADOQuery1.Open;
end;
编译的时候没问题,可是执行exe文件时,就会报错“from语句语法错误”
实在想不明白是怎么回事[:(]

15楼: sql:=''select * from SM where (A is null) and (B is null)'';

16楼: 试过happycry的办法,还是不行啊,郁闷死了!

17楼: 加我QQ : 402859388

18楼: 看来是你 Delphi 问题,用的是什么版本?如果是 Delphi5,要打 ADO 补丁。

19楼: 实际上,用 ado 执行sql 语句完全看数据库的,和 ado 本身没什么关系
也就是说如果你的 sql 在 Access 里面可以执行,那在 ado 里面就可以执行。

ado 仅仅起个传话筒的作用。


var
sql:string;
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
sql:=''select * from SM where(A is null and B is null)'';
ADOQuery1.SQL.Add(sql);
ADOQuery1.Open;


end;

楼主可能的问题是: Where(A 中间没有空格!

20楼: 程序里在where后加了空格,另外我用的是Delphi7版本!
ADO应该没有问题,因为我用它实现了关键字模糊匹配查询和按字长查询,都已经成功了

仓库管理软件版21楼: 把你的SQL语句从新输入一次,不要输入非法字符(不可见,如全角的空格).
再不行的话,把你的SQL语句 到 SQl Explorer里试一下,看能不能通过.
服了你了.

22楼: 在 Access 平台输入 SQL 语句,通过后用复制-粘贴的办法,复制到 Delphi 中试试。 如用友客户管理软件

23楼: 我也服了,是服了Delphi…………
刚才把ACCESS 里的查询复制粘贴过来了,还是不好用[:(!]

24楼: 我觉得ADO不仅仅起到传话筒的作用,因为我实现like模糊匹配查询时,用的是“%”通配符,但是ACCESS里的字符通配符应该是“*”。所以我觉得ADO可能改了某些设置,使得ACCESS里的查询不能原搬不动地拿来用!!

25楼: 标准的查询就是使用 ''%'' 的,而标准sql 在 Access 肯定适用!

26楼: 自己顶一下,问题还是没有解决啊…………

27楼: 接受答案了.