您的位置:首页 > 数据库

根据ID字段比较两个Access数据库中的数据表中的记录异同

2008-04-10 18:01 465 查看
//函数说明:根据ID字段比较两个Access数据库中的数据表中的记录异同
// p1 第一个数据库
// p2 第二个数据库
// tName 要对比的数据表名
function CompRecordById(AdoQuery:TADOQuery;p1,p2,tName:string):Boolean;
var
sqlstr:string;
begin
sqlstr:='select * from ('+
'select t1.id,t2.id from ['+p1+'].'+tName+' as t1 left join '+tName+' as t2 on t1.id=t2.id '+
'union '+
'select t1.id,t2.id from ['+p1+'].'+tName+' as t1 right join '+tName+' as t2 on t1.id=t2.id'+
') '+
'where t1.id is null '+//第一个数据库中没有的记录
'or t2.id is null'; //第二个数据库中没有的记录

AdoQuery.Close;
AdoQuery.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+p2+';Persist Security Info=False';
AdoQuery.SQL.Text:=sqlstr;
AdoQuery.Open;
end;

以上函数有BUG,请参看另一篇文章
http://blog.csdn.net/siow/archive/2008/05/29/2493944.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐