两个数据库合并的问题?(80分)

  • 主题发起人 主题发起人 hymen1
  • 开始时间 开始时间
H

hymen1

Unregistered / Unconfirmed
GUEST, unregistred user!
如何将两个数据库合并起来呢?
两个独立的桌面数据库,如:pradoxs类型的,如何将两个数据库进行校对并合并起来呢/

急!!
 
用Tbatchmove控件 ,
或用Ttable.Batchmove(ASource: TBDEDataSet; AMode: TBatchMode)
 
可是还要进行校对,去掉重复的。
 
如果APPEND前要进行复杂校对 那就用下面的方法:

function AppendData(var SourTable ,TargetTable :Ttable):boolean; //将SourTable 导入TargetTable.
var
FieldVal1,FieldVal2...FieldValn :string;
begine
SourTable.open;
TargetTable.open;
TargetTable.indexName := ....要设置索引哟.
SourTable.bof();
while not SourTable.eof() do
begin
FieldVal1:= SourTable.FieldByName('field1').asstring ;
FieldVal2:= SourTable.FieldByName('field2').asstring ;
...
if TargetTable.FindKey(....) = false
beign
TargetTable.append()
TargetTable.FieldByName( ' ...) := ...
TargetTable.FieldByName( ' ...) := ...
TargetTable.FieldByName( ' ...) := ...
TargetTable.post;
end;
SourTable.next;

end;
result := ...
end;

要是不放心再加上异常处理.....

 
如果APPEND前要进行复杂校对 那就用下面的方法:

function AppendData(var SourTable ,TargetTable :Ttable):boolean; //将SourTable 导入TargetTable.
var
FieldVal1,FieldVal2...FieldValn :string;
begine
SourTable.open;
TargetTable.open;
TargetTable.indexName := ....要设置索引哟.
SourTable.first;
while not SourTable.eof() do
begin
FieldVal1:= SourTable.FieldByName('field1').asstring ;
FieldVal2:= SourTable.FieldByName('field2').asstring ;
...
if TargetTable.FindKey(....) = false
beign
TargetTable.append()
TargetTable.FieldByName( ' ...) := ...
TargetTable.FieldByName( ' ...) := ...
TargetTable.FieldByName( ' ...) := ...
TargetTable.post;
end;
SourTable.next;

end;
result := ...
end;

要是不放心再加上异常处理.....


 
后退
顶部