说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

实现不同数据库系统之间的数据转移-Delphi资料

HTML文档下载 WORD文档下载 PDF文档下载
实现不同数据库系统之间的数据转移-Delphi资料

在 计 算 机 应 用 系 统 的 软 件 升 级 改 造 过 程 中, 我 们 经 常 遇 到 这 样 一 个 问 题: 老 系 统 的 数 据 库 平 台 与 新 系 统 不 同。 例 如, 老 系 统 的 数 据 库 平 台 是Foxpro, 而 新 系 统 的 平 台 是SQL Server。 而 且, 我 们 需 要 把 旧 的 数 据 库 应 用 系 统 中 的 一 些 数 据 转 移 到 新 系 统 来。 但 是 因 为 新 老 系 统 在 定 义 数 据 类 型、 数 据 格 式 等 方 面 的 差 异, 就 很 难 用 人 工 录 入 的 方 法 来 实 现。 因 此, 需 要 有 一 个 能 实 现 这 种 功 能 的 程 序。

本 文 利 用Borland Delphi 实 现 了 这 个 转 移 过 程。

基 本 思 想 是: 在 一 个Form 中, 分 别 用 两 个TDatabase 控 件 连 接 新 老 数 据 库。 并 采 用 TTable、TDbGrid 作 为 数 据 转 移 的 中 心, 根 据DbGrid 中 的 数 据 生 成 标 准 的SQL 插 入 语 句。 这 样, 就 实 现 了 从 一 个 数 据 库 系 统 到 另 一 个 数 据 库 系 统 的 数 据 转 移。 在 这 里, 采 用TTable、TDbGrid 作 为 数 据 转 移 的 中 心 是 一 个 技 巧, 因 为:TTable 的Fields 属 性 能 指 示 出 某 字 段 的 字 段 名 称、 数 据 类 型 等, 这 为 数 据 转 移 过 程 中 的Insert 语 句 的 生 成 及 数 据 类 型 转 换 提 供 了 依 据。

下 面 的 例 子 展 示 了 从Foxpro 到SQL Server 的 数 据 转 移 方 法。 至 于 其 他 系 统 间 的 数 据 转 移, 只 要 根 据 目 标 系 统 的 数 据 定 义 要 求, 修 改 相 应 的Insert 语 句。

程 序 代 码 如 下:

unit ConvertDBF;

interface

uses

Windows

Messages

SysUtils

Classes

Graphics

Controls

Forms

Dialogs

StdCtrls

DBTables

Db

Grids

DBGrids;

type

TfrmConvertDB = class(TForm)

btnOK: TButton;

Label1: TLabel;

db1: TDatabase; {用于连接老数据库系统}

db2: TDatabase; {用于连接新数据库系统}

dbg: TDBGrid;

tblSource: TTable; {dbg的Datasource}

qryInsert: TQuery;

{用于存放生成的SQL Insert语句}

srcSource: TDataSource;

tblDest: TTable; {DBGrid1的Datasource}

DBGrid1: TDBGrid;

srcDest: TDataSource;

edFromtbl: TEdit;

Label2: TLabel;

Label3: TLabel;

edToTbl: TEdit;

procedure btnOKClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmConvertDB: TfrmConvertDB;

implementation

{$R *.DFM}

procedure TfrmConvertDB.btnOKClick

(Sender: TObject);

var iField :integer;

begin

if ((edTotbl.text<>'') and

(edFromtbl.text<>''))then begin

tblSource.TableName:=edFromtbl.text;

{指定TableName}

tblDest.TableName:=edTotbl.text;

with tblSource do begin

Open; {打开老系统的表}

while EOF=FALSE do begin

{逐条记录处理}

qryInsert.SQL.Clear;

qryInsert.sql.Add

('Insert into '+edTotbl.text + '(');

for iField:=0 to dbg.FieldCount-1 do begin

qryInsert.sql.add

(dbg.Fields[iField].DisplayLabel);

if iField<>dbg.FieldCount-1 then

qryInsert.sql.add('

');

end;

qryInsert.sql.add(') values(');

for iField:=0 to dbg.FieldCount-1 do begin

{进行数据类型转换}

if dbg.fields[iField].DataType=ftInteger then

qryInsert.sql.add(inttostr

(dbg.fields[iField].asInteger));

if dbg.fields[iField].DataType=ftFloat then

qryInsert.sql.add(floattostr

(dbg.fields[iField].asFloat));

if dbg.fields[iField].DataType=ftDate then

qryInsert.sql.add(''''+datetostr

(dbg.fields[iField].asDateTime)+'''');

if dbg.fields[iField].DataType=ftString then begin

if dbg.fields[iField].asString<>'' then

qryInsert.sql.add(''''+dbg.fields

[iField].asString+'''')

else

qryInsert.sql.add('NULL');

end;

if iField<>dbg.FieldCount-1

then qryInsert.sql.add('

');

end;

qryInsert.sql.add(')');

qryInsert.ExecSQL;

{把数据插入到新系统的表中}

next;

end;

end;

tblDest.Close;

tblDest.Open;;

ShowMessage(' 转换完毕! ');

end

else

ShowMessage

('请输入要插入数据的表的名称 ');

end;

end.

Qunar 谌振宇:旅游行业的移动化如何布局? 大数据分析“铁三角”: Teradata数据仓库、Teradata Aster与Hadoop Teradata专业服务:打造行业企业的“数据科学家” Xamarin Evolve 2013:竭尽全力让C#服务iOS与Android 史上最全!57个Web框架4轮横向对比 回顾银行数据的可用性和一致性历史 Qubole:托管在AWS平台上的Hive服务 自由操作系统 Debian 正式发布7.0版本 4月份浏览器份额:IE 8仍居第一,IE 10翻番 亚马逊正式在华推Android应用商店 收入3:7分账 不要男孩,只允许女生参加的四所编程学校 下一波App机会在哪里? JS1K 2013优胜作品公布 3D蜜蜂仅获亚军 专访:前新浪网架构师徐佳转行卖水果背后的故事 FBI密码挑战,你能解开吗? 从0到1只需一天:Twitter后PC时代物联网“敏捷”开发之路的探索 机械生物已经面世 只少个“大脑”而已 百度正式宣布3.7亿美元收购PPS视频业务 比尔&#183;盖茨:iPad让人失望 用户需要Surface Dropbox将于今年夏天举办有史以来的第一场开发者大会 Clustrix Sierra分布式数据库系统:云计算时代的MySQL 英特尔出杀手锏 发布低功耗、高性能Silvermont微架构 10大最实用的Raspberry Pi扩展设备推荐 主流浏览器性能测试,IE10百分百完胜! TortoiseSVN的基本操作 再见,Fireworks! 投资者告诉诺基亚CEO:他们快没耐心了 直接拿来用!最火的Android开源项目(二) 营收奇迹:三消游戏Candy Crush Saga成功启示录 马化腾对话李连杰:移动互联网的能量有多大? UC与趋势科技携手,移动浏览器加固安全 TC++图像编程小问题: ) 请教一下怎么解决~~ How to install VB6.0 Enterprise in Windows NT workstation4.0+sp6? ###########################简单的问题,救我! 关于open方法的问题??? =======是鲁迅错了?还是我错了?============= 如何实现写字板的replace功能? 新手问初级的问题:客户端使用什么数据库好? 为什么 CBC6 没有 ClassExplorer ??????? vc高手看过来!如何实现通过程序拨号(专线猫)请给出例子!急.急.急! 我的机器为何不能装2000 想知道搞Java多少银子/月呀? 哪里有Win2000英文版的下载啊 请教各位:用jsp中怎样知道用户浏览器的类型? 哪里有bmp文件格式的标准? 为什么sql server2000数据库里的数据在Win XP下不能显示中文啊? 回答出来给100分 在pb中用SetPicture(lb_image)当lb_image为空时picture的图片不变 急!!请问关于传递byte数组的问题 请教动态库的问题! 使用Delphi能够访问Windows2000 Active Directory? 请问在发邮件的时候怎么检查邮件地址真假!有无正确的发到! 简单之极的问题(两个,有关IE和IIS),但我还不会 那里有activethreed 3.0下载,快帮帮我呀! 开发OFFICE ADDIN 插件是否需要OFFICE SDK? 谁能给我一个用C++实现哈希表的例子? ◇◆◇上海有居住证的请进来拿分◇◆◇ 誰有SilverStream的中文資料,或哪有下載,謝謝. 在VB中如何显示声音VU强度的输出 How to install VB6.0 Enterprise in Windows NT workstation4.0+sp6? 想使用windump却总是说 error opening adapter 是什么意思?? 关于pb的一个问题 怎么控制Word为只读属性? 在VB中如何显示声音VU强度的输出 快来啊,怎么总是不行?帮帮忙把!!!!!!!!!!! 关于TreeView与数据库的问题? 如何找一份软件开发的工作 WorkThread和UserThread到底有什么区别? ASGLW进来 麻烦帮下忙,一个看上去好像很简单的问题,居然搞不出 在有系统分析员的情况下实践XP 请问各位,如何装ORCALE呀,我买了ORACALE8.05的光盘,装了一个晚上都不能装上?来者有分! 怎样隐藏datagrid中的一列? 我的程序员表妹照片-----------mm程序员 80分求助!滚动ScrollBox的Scrollbar,结束滚动时,可以触发什么事件?请高手帮忙! CGI漏洞部题! 怎样令自己的程序不在按Ctrl+Alt+Delete弹出的任务管理器中出现? 如何开发http://www.mobset.com/这样的手机应用程序? 求救! 数据库操作中,内存不能为读,怎么办? 使id号自动加1的方法?? 吸烟成瘾 已知F1 F2是椭圆x2/4+y2/b=1 的左右焦点(焦点在x轴上)直线AB经过F2交椭圆...已知F1 F2是椭圆x2/4+y2/b=1 的左右焦点(焦点在x轴上)直线AB经过F2交椭圆于A B两点,连接AF1 BF1.设AF1的中点为M,试探究是 推荐一些梁实秋散文的经典片段?推荐一些梁实秋散文的经典片段,麻烦注明出自哪篇文章.感谢各位大侠! 已知过椭圆X平方/2+Y平方=1的左焦点F的弦AB的垂直平分线交X轴于P(M,0),求M的取值范围. 求证:不论a为何值,方程2x²+3(a-1)x+a²-4a-7=0必有2个不相等得实数根. 要篇梁实秋较短的散文,字数控制在500字左右,尽量吧 设经过椭圆C:x^2/4+y^2/3=1的一个焦点是F(1,0)的直线交椭圆于M,N,线段MN的垂直平分线交y轴于点P(0,y)求y的取值范围 过椭圆C:x^2/a^2+y^2/b^2=1的焦点引垂直于x轴的弦,则弦长为? 求梁实秋散文《钱》原文 已知以x为未知数的方程2009x+2009a+2010b=0(a,b为有理数,且b>0)有正整数解,则ab是()A.负数B.非负数C.正数D.零 已知经过椭圆x^2/25+y^2/16=1的右焦点F2做垂直于x轴的直线AB,交椭圆于A、B两点,F1是椭圆的左焦点:求三角形AF1B的周长 F1、F2为椭圆x2/4+y2=1的左右焦点,P是一象限该椭圆上点,向量PF1口向量PF2=-5/4,求P坐标 已知a2是方程x2-2009x+1=0的一个跟 求a2-2009a+2009a/a2+1的值 过椭圆x^2/16+y^2/9=1的左焦点F1,作垂直于长轴的直线交椭圆于A.B两点,F2为右焦点,则|AF2|=?用假分数表示 k为何值时,关于x的方程x^2+2(k+3)x+2k+4=0的两个实数根一个大于3,另一个小于3? 梁实秋散文写的怎么样值得看吗 作者对听戏有哪些感悟与思考呢?(用文中语句回答,两点即可)我只要两点就行了~《听戏》的 椭圆x2/a2+y2/b2=1 两焦点为F1,F2,P是椭圆上一点且向量PF1乘以向量PF2=0,试求椭圆的离心率的取值 梁实秋散文《鸟》的赏析请从内容和艺术手法两方面赏析. 作者对听戏有哪些感悟与思考 P是椭圆x2/16+y2/4=1上的一个动点,F1,F2是椭圆的两个焦点,则向量PF1×向量PF2的最求最大值 椭圆x^2/a^2 + y^2/b^2=1 (a>b>0)的右焦点为F 其右准线与x轴交点为A 在椭圆上存在P点满足线段AP垂直平分线过点F 则椭圆离心率的取值范围是?为何设(-a,0)为B 则有|FB|>=|AF|即为其离心率范围.. 过椭圆x²/4+y²/3=1的焦点垂直于x轴的直线l被此椭圆截得的弦长为多少 如果根号x减4+(y+6)²=0,求x减2y的算数平方根(要过程) 如图椭圆Q:X^2/A^2+Y^2/b^2=1的右焦点F(C,0)过点F的一动直线M绕点F转动,并交椭圆于AB两点P是线段AB的中点求点P的轨迹方程 求通过椭圆X^2/3+Y^2/4=1的一个焦点,并且与Y轴垂直的直线被椭圆截得的弦长 计算20042002的平方+20042004的平方分之20042005的平方 F1,F2是椭圆x^2/2+y^2=1的左右焦点,直线L:x=-1/2 设A,B是C上的两个动点,线段AB的中垂线与C交与P,Q两点线段AB的中点M在直线L上.求向量F2P*向量F2Q的取值范围 若过椭圆的焦点且垂直于x轴的直线被椭圆截得的弦长为1/2a,则该椭圆的离心率为 已知y等于根号5减x加根号x减5加4,求根号x加y的算数平方根 已知椭圆C:x^2/8+y^2=1,左焦点F(-2,0),若直线y=x+m与椭圆C交于不同的两点A,B,且线段AB的中点M在圆x^2+y^2=1上,求m的值 椭圆的长轴长为8一个焦点为(2,0)直线l过点(-1,0)且倾斜角为60度则椭圆截直线l所得的弦长是 关于x方程x²+2(k+1)x+k²=0 的两个实数根之和为m,关于y的不等式组y>-4,y x-3分之x+2乘x的平方-4分之x的平方-6x+9 《听戏》梁实秋 作者对听戏有哪些感悟与思考?(用文中语句回答,两点即可) 关于x的方程x²+2(k+1)x+k²=0l两实数根的和为m,且满足M=-2(k+1),关于y的不等式组-4<y<M有实数解,则K的取值范围 求11初二上政治期中测试题 1.一个多项式除以2x的2次方y的商为4x的3次方y的2次方-6x的3次方y+2x的4次方y的2次方,则这个多项式是 关于x的方程x^2+2(k+1)x+k^2=0 两实数根之和为m关于y的不等式组y>-4 y<m 有实数解 k的取值范围 初二上学期期中历史试卷, 过椭圆x^2/9+y^2/4=1(a>b>0)的一个焦点F作垂直于长轴的弦,弦长为多少? (1)20042004*20042003-20042005*20042002 (2)1又1/5+3又1/35-5又1/63+7又1/99+9又1/143+11又1/195(3)1+/12+(1/3+2/3)+(1/4+2/4+3/4)+…+(1/50+2/50+…+49/50 过椭圆x^2+2y^2=4的左焦点左倾斜角为30度的直线,交椭圆于A,B两点,则弦长AB= 过椭圆X^2/25+Y^2/16=1,的焦点F作垂直于X轴的弦,求弦长 初二上学期期中地理复习提纲(人教版)快... 初二下政治期中测试题有悬赏 听戏梁实秋阅读答案 有人会吗, 以x为未知数的方程2007x+2007a+2008b=0(a.b为有理数,且b>0)有正整数,则ab是( )A.负数B非负数C正数D.零 听戏 梁实秋 初一下的评价手册16课课外阅读答案, 过椭圆x^2/a^2+y^2/b^2=1(a>b>0)的一个焦点F,作垂直于长轴的弦,则弦长是多少?(1) 设F1,F2是椭圆x^2/a^2+y^2/b^2=1(a>b>0)的两个焦点,AB是过F1的弦,则△ABF1的周长是多少?(2) 以椭圆的两个焦点为直径,端 a,b为有理数,B小于0,关于W的方程(2007A+2008B)W+2007=0无解,A+B=(正,负数;非正,负数) 听戏 梁秋实 阅读答案 只考了一个B和一个C 怕爸爸的责罚 怕妈妈伤心 怕别人的嘲笑 还想起了自杀的念头. 初二人教版地理,生物的重点!急!好的给高分! 过椭圆x2/a2+Y2/B2=1的左焦点F1作x轴的垂线交椭圆与P,F2为右焦点,若角PF2F1=30°,求椭圆的离心率 已知椭圆c:x∧2/a∧2+y∧2/b∧2=1(a>b>0),过焦点垂直于长轴的弦长为根号2,焦点与短轴两焦点构成等腰直角三角形、 人教版八年级生物上册复习重点 听戏这篇阅读的答案 在直线L:x-y+9=0上任取一点M,M作以F1(-3,0),F2(3,0)为焦点的椭圆,当M在什么位置时,所作椭圆长轴最短...在直线L:x-y+9=0上任取一点M,M作以F1(-3,0),F2(3,0)为焦点的椭圆,当M在什么位置时,所作椭圆长轴最 期中试卷.或者需要记的一些要点~我们是北京的!人教版!人教版.只到期中的就可以了~
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘