procedure TfrmDataCopy.Button1Click(Sender: TObject); var i:Integer; begin ADOTable2.DisableControls; ADOTable2.Open; with ADOTable1 do begin First; while not eof do begin ADOTable2.append; for i:=0 to ADOTable2.FieldCount-1 do begin ADOTable2.FieldByName(ADOTable2.Fields[i].FieldName).AsString:=Fields[i].AsString; end; ADOTable2.post; next; end; end; ADOTable2.EnableControls; ShowMessage('拷贝成功!'); end;从ADOTable1拷贝到ADOTable2中去
到SQL Server上做一个链接服务器连接到ACCESS, 这样只用建立一个连接就可以了.
导数据不必用两个adoconnection,一个就行 从access 到sqlserver SELECT * into #temp FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="D:\Work\My_Test_Program\date.mdb";User ID=Admin;Password=')...Access表名
var
i:Integer;
begin
ADOTable2.DisableControls;
ADOTable2.Open;
with ADOTable1 do
begin
First;
while not eof do
begin
ADOTable2.append;
for i:=0 to ADOTable2.FieldCount-1 do
begin
ADOTable2.FieldByName(ADOTable2.Fields[i].FieldName).AsString:=Fields[i].AsString;
end;
ADOTable2.post;
next;
end;
end;
ADOTable2.EnableControls;
ShowMessage('拷贝成功!');
end;从ADOTable1拷贝到ADOTable2中去
这样只用建立一个连接就可以了.
从access 到sqlserver
SELECT * into #temp
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="D:\Work\My_Test_Program\date.mdb";User ID=Admin;Password=')...Access表名
数据不多,用流来实现数据的传输。
先从一个数据库中读取:
str:=Tmemorystream.Create;
str.Position:=0;
Tblobfield(Form1.ADOTable1.FieldByName('字段名')).savetostream(str);
再保存:
str:=Tmemorystream.Create;
str.Position:=0;
form1.ADOTable1.Append;
Tblobfield(form1.ADOTable1.FieldByName(字段名')).LoadFromStream(str);