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

实现不同数据库系统之间的数据转移-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.

语言选择引起的查询错误 -VB资料 远程数据库的访问-VB资料 运用ADO进行数据库表数据互导 -VB资料 在 VB5.0中编辑数据库和电子表格 在Access 2000中用ADO-VB资料 在Access数据库中实现密码管理的另一种方式 -VB资料 在VB6.0中使ACCESS数据库在网络使用中保持同步 在VB中更改SQL Server数据库结构 在VB中兼容非ACCESS数据库的技巧 在VB中引用dbf及索引文件 在VB中运行Microsoft Access报表的好方法 在VB中直接用ODBC API访问数据库 在数据库应用中, 经常要动态生成 Select 语句,典型的情况:-VB资料 在运行时修改DataEnvironment的连接字符串-VB资料 在抓取資料庫之資料前先計算資料總筆數 -VB资料 增加 MsFlexGrid 的编辑功能-VB资料 真正删除数据库的记录 -VB资料 用VB制作屏幕保护程序 VB多媒体程序设计 VB设计动画时钟 VB游戏写作技巧(1)秀图篇 VB游戏写作技巧(2)网络篇 VB中播放WAV文件 VB中播放三维动画编程一例 Visual Basic 5.0多媒体创作技巧 Visual Basic 5.0中实现视频画中画 Visual Basic 中制作流水灯 Visual Basic动画编程技术 Visual Basic环境下Video/ Audio压缩数据流播放技术 Visual Basic设计多媒体应用程序 Visual Basic影音控制 怎样求一个集合的子集? 我应该怎么做(项目经理请进,至少代表全国大部分公司的问题),一个年轻软件开发人员的问题 zzzzzzzzzzzzzzzzzzzz 高手指点迷津,如何更新数据库里的image字段 算法问题,再请教各位高手! 急急急,有关classpath 急!如何把picturebox中的内容保存成图片呢! Web Service中怎样验证身份? Web Service性能测试,欢迎评论,来者有分! 散分! 数据类型转换 ColdFusion的语言 - CFML win2003安装后,每个一秒种读一次盘是否正常 各位高手,最近在使用MASK PRO插件时碰到一个问题 x86汇编新手 星期六了,我还在工作....大家来帮忙看看。....很简单的问题 怎样在注册表里删除OFFICE 数据库不同,sql语句也有限制吗? 我在使用化境上传组件时碰到的问题,希望大家帮着看看,解决一下,高分求助 listview中的item能否变灰,也就是使某些项不能选 高分求各位高手急求!!!MP3问题 我的2k(PRO)我的电脑打不开,控制面版也打不开,其余的一切正常。这是为什么? 配置问题 关于上网,上传,二个大问题,高手请进,急! 一个打包问题 如何在asp里实现点一个按钮带动另一个软件的运行?急! 散分! 怎样将http下做好的网站,全盘转为https的.我准备买密匙的.想先测试一下. 如果判断当前时间是在某一时间段内? TX DATA SOURCES 數據源問題? 数据得导入和导出 给个好办法 反驳!“一位女生对男生追心仪女孩的建议”zz 请高手指点出我的小程序错误,谢谢! 菜鸟问题,这个combobox为什么不响应onchange事件?高手看看啊 高分求助 (100分) :求学生的平均分,并且排序输出成绩册!!!! 急!请问如何使用java语言获取mysql数据库的相关信息 编译4次便能成功! 下载UNIX 散分! Jsp函数中如何使用JavaScript中定义的函数? 无题! OnKeyPress和OnkeyDown有什么不同? void Page_Load(Object Sender, EventArgs e)语句,是定义一个方法函数,那括号中的Object Sender, EventArgs e可变吗? 有没有开发linux下防火墙的?怎么使用netfilter? 如何取参数呀? EVC中如何使用CHtmlView类,制作网页方面的程序呀! 操,还有这样倒分的,版主管不管?这样的人还要不要脸? 为什么我的sample.dll不能正常被调用 JBuilder如何打开Excel文档? 我们正在考试 请看一下了 太谢谢了 气体激光器用二氧化碳行么?怎么用? 人类的祖先是怎样预防野兽的袭击的急 急 急 急 急 急 急 急 急 急 有没有具体的描写,证据之类的!希望给出一些具体事例,证据,不要只说一下用什么东西预防, 长为L的绝缘细棒两端固定两金属小球,各带电量为+q和-q,细棒可绕水平轴O无摩擦转动,细棒放置在两平行金属板中间,两板间距离为d,电压为U,要使细棒从图所示位置转过180°角,两小球克服 孔子曰:独学而无友,则孤陋而寡闻.这句话蕴含什么道理? 野兽与人类的分别在于什么呢? 关于油菜和菜心的问题?我看到一种油菜有黄色花,一种没花,请问哪种是油菜,哪种是菜心?抑或油菜就是菜心? 如何吃q10辅酶 什么野兽最怕人类 油菜, 那些食物含有Q10辅酶? 出血了止血适合擦什么药?碘酒或者甲紫溶液? 上海菜花节有多少亩油菜? 国庆烟花汇演观后感5、600字就好 今天手指被一根有点生锈小钉子扎了一下,伤口约1毫米,扎后把血挤出来了和用酒精和碘酒消毒,会有破伤...今天手指被一根有点生锈小钉子扎了一下,伤口约1毫米,扎后把血挤出来了和用酒精和 这个到底叫什么菜,我茶了花菜,菜花,油菜花之类的,都不是这个菜 观烟花有感(600字左右,符合初中水平,要符合实际) 如何制取浓硫酸我准备加热硫酸亚铁然后制取浓硫酸,这个方法可行吗,如果可以,求一个具体操作和实验方案.如果不行,求另一种方法 中国最早现存的古籍有哪些请大大给我个目录按时间顺序排一下要全的哦 2009国庆礼花观后感 激光有那些特性?CO2激光器和YAG激光器的特点? 站在绝缘体椅上的小女孩触摸到带电的金属球后,头发竟然像刺猬一样炸开了,其原因赶紧呀,最好今天就解决,现在等着用呢! 《亡命鸡礼花》有感写写中心思想,传达了什么,从中领悟到了什么,等等200字左右,自己写,文字哲理一点,优美一点, 这样制取浓硫酸可行吗?二氧化锰过氧化氢----------→氧气+水H2O2 O2 H2O收集氧气.点燃硫磺+氧气------→二氧化硫S O2 SO2收集二氧化硫.二氧化硫+过氧化氢----→硫酸SO2 H2O2 H2SO4然后加热,使水蒸发.第 编织袋上喷上文字要用什么漆?急 生姜皮能吃吗?婆婆每次做菜放生姜时都要把生姜皮去掉,她说那个有毒,吃了不好,请问生姜皮真的有毒吗?能不能吃啊? 谁知道开关多开几次才跳闸.有时候漏保也打不上去有那些原因 人类是食肉动物吗不吃肉可以吗 决定核糖体和内质网联系的是什么?书上说是蛋白质氨基酸末端序列,为什么 吃姜要刮皮吗? 谁知道开关多开几次才跳闸.有时候漏保也打不上去有那些原因急 独学而无友,则孤陋而寡闻,这句话怎么怎么解释呀!同题! 大雁和雁鹅有什么区别呢? 古代喝酒的器皿 叫什么?三只脚的那个? 为什么“独学而无友,则孤陋而寡闻.” 雁鹅有什么特征 古代用于捣东西的器皿叫什么?就像碗一样 独学而无友,则孤陋而寡闻的启示 实行生产资料公有制就等于实行了社会主义了吗 贝贝比爸爸矮0.54米,爸爸的身高是贝贝的1.3倍,贝贝和爸爸的身高各是多少? 国庆六十周年阅兵式礼炮意味着什么为什么六十响 生产资料公有制是社会主义的本质本质吗?为什么? 大一高数 但是看不懂 就讲解.仅有两个实根. 国庆60周年阅兵式礼炮到底鸣了多少下 全身黄,比鹅大,飞行像大雁是什么鸟大概在十几年前的成都金堂的冬天出现过,谁能告诉我这是什么鸟真的是一种鸟,最好最好有图片 大一高数,简单格林公式题.看不懂上面的内容和例4.麻烦讲解下 国庆阅兵式 先升国旗还是现放礼炮 大雁与鹅的区别? 若有足够的氧气能不能让宇宙充满氧气? 独学而无友,则孤陋而寡闻.在作文中的运用(急!)这句话怎么在作文中运用、还有、这句话的深层寓意是什么、主要是怎么在作文中运用、、请专家解释~急啊、、最好今天可以解决、! 亚磷酸二甲酯能用强碱分解吗?碱解后的产物是什么?请问强碱分解的具体条件是什么?产物是磷酸还是亚磷酸? 碳酸轻钠的用途 H2CO3不完全分解时,化学方程式是什么还有C+CO2生成什么 雁鹅是鹅吗? 配网分段开关和联络开关的作用有什么区别?分段开关---主要作用分断和接通双电源供电回路有A、B两电源同配电柜两点上供电能短路防止两电源供电短路同时也防止回路断电另路投入时造成 MOS管D极与S极之间的二极管有什么作用? 在同样水中加入一小勺盐和糖,再放入冰箱内不久,再拿出来,什么更容易溶于水? 请问母联开关和联络开关有什么区别?在变电所中常提到的 母联刀闸,联络刀闸.各指什么,有什么区别吗?另外电压互感器是“并联”还是“串联”在线路中,最好能有个图帮着说明. 希腊梭伦改革后,公民是指什么,平民是指哪些 人类祖先怎样躲避野兽攻击?科学课要求,回答好的我加给他20分o()^))o唉 碳酸亚铁如何缓慢变为四氧化三铁或氧化铁或氧化亚铁?碳酸亚铁能溶于酸,是什么酸?其的酸溶液,加入什么能缓慢在空气中变为四氧化三铁或氧化铁或氧化亚铁? 德国社民党称需要成立调查委员会 斯诺安倍突访土耳其 传为劝阻土放弃购中国媒体称废品价格10年不涨 收一车东西江苏沛县办公楼豪华超标 称四套班子领坦桑尼亚军方证实一名坦维和军人在刚果温岭数百医护人员哀悼遇害医生 上百医纽约油价28日继续反弹纽约华裔灭门案凶手因妒忌动杀机 与被安理会将与伊斯兰合作组织加强合作俄罗斯外长说俄乌贸易关系不会破裂40余名非洲移民渴死于尼日尔沙漠中央巡视组“寻虎找蝇”聚焦以权谋私等黎巴嫩真主党呼吁通过政治途径解决叙利伦敦股市股指28日上涨德国法兰克福股市DAX指数28日下跌河北宣化女村官称遭官员性骚扰 出示微丝绸之路国际大会在伊斯坦布尔举行伊朗就核问题对话提出新建议内蒙古国贫旗现豪华接待中心 回应称为25省区市前三季度GDP之和超全国总专家称当代难谈“汉字危机” 呼吁重视在失散的地方牵手改善市容市貌农家采摘乐陶陶汽车南站有个“爱心书架”网络幕后推手“立二拆四”案开审全省公务员招考新郑将建美丽乡村示范村和谐社区幸福多 邻里相爱一家亲媒体:有的腐败官员前台扮红脸 亲属幕民间文化多数院校降分备档消费资讯管城区12个棚户区改造项目开工NBA公布新赛季赛程青奥处处彰显中心城区道路两侧违建超九成已拆除郑州国际陆港多式联运物流枢纽现雏形我省出台规定加强施工扬尘防治开幕式昨晚最后带妆彩排倾听群众意见新书架
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘