delphi对Access多库查询sql的写法问题(50分)

  • 主题发起人 主题发起人 yazhi
  • 开始时间 开始时间
Y

yazhi

Unregistered / Unconfirmed
GUEST, unregistred user!
我的sql语句写法如下:
sql.text := 'select a.供应商ID, a.联系人头衔, b.健身ID, b.运动ID ' +
'from [;database=E::/Delphi练习/数据库编程/Demo/Northwind.mdb].供应商 as a, ' +
'[;database=E::/Delphi练习/数据库编程/Demo/健身1.mdb].健身详细资料 as b ' +
'where a.供应商ID = b.健身ID';

为什么在Access作这样的查询能成功(::改为:),但在Delphi中这么写却不对呢?出错信息是
Invalid use of keyword
token: [;database=E::/Delphi练习/数据库编程/Demo/Northwind.mdb].供应商
这是怎么回事啊?
 
这种写法在DELPHI中肯定行不通,用DELPHI带的工具打开数据库,然后选择查询字段,并加入
相关条件,可以自动生成SQL语句!
 
可以说的具体一点吗?怎么用工具打开库,Access库可以打开吗?
 
在delphi中用sql语句必须要建一个Tquery控件,在它的datebasename中设置数据库名称及路径;或建datebasesouse,设置别名,query1数据源指向别名;
下一步可能以查询了:
with query1 do
begin
close;
sql.clear;
sql.text:='select * from aa';
sql.open;
end;
你先试着用简单的语句调试,再一点点的扩展;不能一口吃个胖子,多努力!
 
看看数据库方面的书 你至少需要使用 TDataSource TQuery
这两个组件。 还要把你的数据库文件加入到ODBC中。

另外你还可以使用ADO页上的组件。不过你还是先把前面2个组件学会了吧!

Query的用法可以参考guyaling的!
 
sql.text := 'select a.供应商ID, a.联系人头衔, b.健身ID, b.运动ID ' +
'from .供应商 as a in "E::/Delphi练习/数据库编程/Demo/Northwind.mdb", ' +
'.健身详细资料 as b in "E::/Delphi练习/数据库编程/Demo/健身1.mdb"' +
'where a.供应商ID = b.健身ID';
 
先用两个TDatabase组件连接上你的Access数据库(使用ODBC别名的方法)。
再把这两个组件的Connection设为True。
这样在你的程序范围内就有两个内部有效的别名了,假设为db1和db2。
添加一个TQuery组件,它的Database属性不要设置(即为空),其sql属性这样写:
select a.供应商ID, a.联系人头衔, b.健身ID, b.运动ID
from ":db1:供应商" a ,":db2:健身详细资料" b
where a.供应商ID = b.健身ID
这样是肯定可行的!
 
你必须用BDE或DATABASE控件连上你的Access数据库先。
 
delphi的查询好象必须用参数!
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部