希望合并不同Access数据库(db1,db2,db3)中的表T;
例如db1有记录A,B;db2有记录B,C;db3有记录C,D;
其中有重复记录,db2与db3循环逐条插入db1中;
因此,先做了select from db1不存在,然后才Insert into db1;
报错情况:db2写入db1没有问题(此时,db1中应有记录A,B,C);
然而,select from db1 where =C 时,没有找到,导致Insert 重复记录出错。
使用TADOQuery,非事务处理模式;
并且,如果在ExecSQL后,sleep(1000),则没有错误。
请问,是否和delphi的数据访问有关?
上面写的比较乱,不好意思
例如db1有记录A,B;db2有记录B,C;db3有记录C,D;
其中有重复记录,db2与db3循环逐条插入db1中;
因此,先做了select from db1不存在,然后才Insert into db1;
报错情况:db2写入db1没有问题(此时,db1中应有记录A,B,C);
然而,select from db1 where =C 时,没有找到,导致Insert 重复记录出错。
使用TADOQuery,非事务处理模式;
并且,如果在ExecSQL后,sleep(1000),则没有错误。
请问,是否和delphi的数据访问有关?
上面写的比较乱,不好意思
inset into db1
from
(select * from db2
union
select * from db3
) t1
where t1.XX not in
(select XX from db1)
db1,db2,db3是不同的mdb文件,只不过表T的表结构结构一样
ADOCommand1.CommandText:='select * into newT from (select * from T union select * from T in "db2路径+db2.mdb" union select * from T in "db3路径+db3.mdb")';
ADOCommand1.Execute;
不好意思,没时间上网结帖,已经弄好了,不过可以请问一下访问外表的时候怎么加上用户名密码呢?