数据导入导出(100分)

  • 主题发起人 主题发起人 tonysum
  • 开始时间 开始时间
T

tonysum

Unregistered / Unconfirmed
GUEST, unregistred user!
最近用access2000开发一个小软件,需要将db1中的table1的数据全部数据导出db2
中的table1,在access环境中打开db1,我可以建立查询用如下语句
insert into c:/data/db2.table1 select * from table1
执行正确
但是在delphi中 我的语句如下:
with adocommand1 do
begin
commandtext:=' insert into c:/data/db2.table1 select * from table1 ';
execute;
end;
程序运行后,提示没有正确定义参数
请各位大侠帮忙看一下
 
SELECT * into [d:/aa.mdb].a from a

追加:
insert into [d:/aa.mdb].a select * from a

再access中,可以用链接表的方式取得另一个数据库中的数据,不必导出也可以!
 
to mikez:
实际上[]在access环境中会自动加上的,delphi的sql语句加不加都可以,今天我重新
查了一下access的help,找到microsoft jet sql参考(原来我没有装msdn时,看不到此部分)
语法如下:
INSERT INTO target [(field1[, field2[, ...]])][IN外部数据库]
SELECT field1[, field2[, ...]]
FROM tableexpression
恍然大悟//黑体部分!!!
IN 子句
标识出外部数据库中的表,例如dBASE或Paradox数据库,或Microsoft Jet外部数据库,Microsoft Jet数据库引擎能够与之相连。
语法
标识目标表:
[SELECT | INSERT] INTO destination IN
{path | ["path" "type"] | ["" [type; DATABASE = path]]}

标识数据源表:
FROM tableexpression IN
{path | ["path" "type"] | ["" [type; DATABASE = path]]}

包含 IN 子句的SELECT 语句具有以下几个部分:

部分 说明
destination 外部表的名称,将数据插入表中。
tableexpression 表的名称,可从这些表中获取数据。
这个变量可能是一个单独的表名,一个已存查询,
或是 INNER JOIN, LEFT JOIN, 或 RIGHT JOIN.
Path 目录或文件的整个路径,而且这些目录或文件包含 table 。
type 数据库类型的名称,如果数据库不是 Microsoft Jet 数据库
(例如 dBASE III、dBASE IV、Paradox 3.x或Paradox 4.x),
则用此类型创建 table 。

------------
重新调试我的程序,发现
commandtext在程序运行时
'insert into c:/pro/c:/data/db2.table1 select * from table1 '
下划线部分是程序运行的目录,错误在这里!
非常感谢mikez,请问您解释一下链表吗?

 
to tonysum:
我的方法你是过没有?我这里能通过。
你现在的方法也是对的,我很久没用access了,一无心再研究。

连接表再创建新数据库表时有一个选项“链接表”,它可以把许多驱动程序支持的其他数据库表链接到本数据库中,
有的联结就像当地数据库表一样地使用。
你逝世,会有惊喜的发现!
 
接受答案了.
 
后退
顶部