用delphi编写数据迁移程序 请大侠帮忙下。

cqy520cly1110 2009-02-16 03:34:30
数据迁移程序,将一个数据库中data1某张表数据迁移到另一个数据库data2相应的表中
两个库可以在不同的计算机上。
要有相应的数据表格显示迁移进度到哪一行

会的话请帮忙写详细些。谢谢大侠了。呵呵。
...全文
154 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
starluck 2009-02-19
  • 打赏
  • 举报
回复



unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, ComCtrls, StdCtrls;

type
TForm2 = class(TForm)
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
Button1: TButton;
ProgressBar1: TProgressBar;
ADOConnection1: TADOConnection;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
var
stepIt : integer;
begin
adoQuery1.close;
adoquery1.SQL.Text := 'select * from a';
AdoQuery1.Open ;
adoQuery2.Close;
adoquery2.SQL.Text := 'select * from b';
adoquery2.Open;
ProgressBar1.Max := ADOQuery1.RecordCount;
stepIt := 1;
ProgressBar1.StepBy(1);
with adoquery1 do while not eof do
begin
adoquery2.Append;
ProgressBar1.Position := stepIt;
Application.ProcessMessages;
ADOQuery2.FieldByName('a').Value := FieldByName('a').Value;
inc(stepIt);
Next;
end;
end;

end.


zdlou 2009-02-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bdmh 的回复:]
ADOQuery1.Close;
ADOQuery2.Close;
ADOQuery1.SQL.Text := 'select * from data1';
ADOQuery1.Open;
ADOQuery2.SQL.Text := 'select * from data2';
ADOQuery2.Open;
P.Max := ADOQuery1.RecordCount;
while not ADOQuery1.Eof do
begin
ADOQuery2.Append;
//赋值过程
ADOQuery2.Post;
ADOQuery1.Next;
P.Position := ADOQuery1.RecNo;
end;

ADOQuery1和ADOQuery2分别连接到两个数据…
[/Quote]
如上,不过如果数据多的话,是件痛苦的事.......
simon0809 2009-02-16
  • 打赏
  • 举报
回复
1.如果数据量很大, 在迁移时要逐笔显示进度是很没效率的事.
2.如果是Sql Server, 用分布式查询语句为上策.
如:
SELECT a.*
into ttt
FROM OPENROWSET('MSDASQL','DRIVER={SQL Server};SERVER=server1;UID=sa;PWD=MyPass',data1.dbo.ttt) AS a
bigfoot001 2009-02-16
  • 打赏
  • 举报
回复
ADOQuery1和ADOQuery2 要用两个不同连线(ADOConnection)
天鸽 2009-02-16
  • 打赏
  • 举报
回复
code=Delphi(Pascal)]
cs:= 'SELECT * INTO data1 FROM data2';
ADOConnection1.Execute(cs,cmdText,[eoExecuteNoRecords]);
[/code]
火龙岛主 2009-02-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bdmh 的回复:]
ADOQuery1.Close;
ADOQuery2.Close;
ADOQuery1.SQL.Text := 'select * from data1';
ADOQuery1.Open;
ADOQuery2.SQL.Text := 'select * from data2';
ADOQuery2.Open;
P.Max := ADOQuery1.RecordCount;
while not ADOQuery1.Eof do
begin
ADOQuery2.Append;
//赋值过程
ADOQuery2.Post;
ADOQuery1.Next;
P.Position := ADOQuery1.RecNo;
end;

ADOQuery1和ADOQuery2分别连接到两个数据库中的表
[/Quote]
方法你实验了吗?
天鸽 2009-02-16
  • 打赏
  • 举报
回复
是什么数据库?

用两个adoconnection,连不同的数据库,进行拷贝。
zhaozhen2004 2009-02-16
  • 打赏
  • 举报
回复
拖两个adoconnection
两个adoquery
一个adoconnection连源数据库(connSource)
一个adoconnection连目标数据库connTarget
一个adoquery连connSource一个连connTarget
拖个progressbar,按照bdmh的写法就可以了.
cqy520cly1110 2009-02-16
  • 打赏
  • 举报
回复
再up。
cqy520cly1110 2009-02-16
  • 打赏
  • 举报
回复
自己up下。
cqy520cly1110 2009-02-16
  • 打赏
  • 举报
回复
我用的是SQL SERVER 7的版本。请大侠可以说明白点么 我是初学者 呵呵。 谢谢啦。
UndefinedCoder 2009-02-16
  • 打赏
  • 举报
回复
如果是SQL Server的话,使用OPENROWSET或OPENDATASOURCE。
bdmh 2009-02-16
  • 打赏
  • 举报
回复
ADOQuery1.Close;
ADOQuery2.Close;
ADOQuery1.SQL.Text := 'select * from data1';
ADOQuery1.Open;
ADOQuery2.SQL.Text := 'select * from data2';
ADOQuery2.Open;
P.Max := ADOQuery1.RecordCount;
while not ADOQuery1.Eof do
begin
ADOQuery2.Append;
//赋值过程
ADOQuery2.Post;
ADOQuery1.Next;
P.Position := ADOQuery1.RecNo;
end;

ADOQuery1和ADOQuery2分别连接到两个数据库中的表
lyhoo163 2009-02-16
  • 打赏
  • 举报
回复
有意思!!!
bdmh 2009-02-16
  • 打赏
  • 举报
回复
两个数据集分别连接两个数据表,然后依次添加,用一个进度条显示进度就可以了
zshsuming 2009-02-16
  • 打赏
  • 举报
回复
等高手``
内容概要:本文系统梳理了多个科研领域的前沿研究与技术实现,重点涵盖FDTD方法中的完美匹配层(PML)研究,以及Matlab/Simulink在电磁、电力、控制、通信、信号处理、图像处理、路径规划、能源系统优化等领域的仿真与算法实现。文中列举了大量基于Matlab和Python的科研案例,如风电功率预测、负荷预测、无人机三维路径规划、电池系统故障诊断、雷达模拟、通信编码、微电网优化调度等,并强调结合智能优化算法(如粒子群、遗传算法、深度学习等)提升系统性能。同时,提供了丰富的代码资源与仿真模型,涵盖永磁同步电机控制、逆变器设计、多智能体任务分配、虚拟电厂调度等复杂系统,助力科研人员快速开展复现实验与创新研究。; 适合人群:具备一定编程基础,熟悉Matlab/Python工具,从事电气工程、自动化、通信、人工智能、新能源、控制科学等相关领域研究的研发人员及研究生。; 使用场景及目标:① 学习并实现FDTD仿真中的PML边界条件以有效抑制数值反射;② 掌握Matlab/Simulink在多物理场建模、控制系统设计与优化算法中的综合应用;③ 借助提供的代码资源完成科研复现、课程设计、竞赛项目或工程原型开发; 阅读建议:此资源以科研实战为导向,不仅提供理论方法,更强调代码实现与仿真验证。建议读者结合自身研究方向,按目录顺序查阅相关模块,下载配套代码进行调试与二次开发,以达到学以致用、融会贯通的目的。

2,508

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧