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

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

资源档(.RES)的应用-VB资料 自定义Text的pop-up菜单-VB资料 自动出现动画、进度和确认的文件操作 -VB资料 自动选择 Text 的内容-VB资料 VB 调用 IMAGE 控件实现图像缩放的一种方法 VB5 实 现 窗 口 图 像 缩 放、 滚 动 技 巧 VB编程之提速攻略(一) VB开发通讯软件 VB实现图形动画的三种方法 VB随机图像的魅力 VB中不规则图形热点的实现 VB中任意旋转位图的实现 VB中实现图像特技 VB中随机图像的魅力 VB中位图旋转的实现 Visual Basic设计图形浏览器示例 捕捉屏幕图象 -VB资料 放置“透明”的图片-VB资料 分割图像的方法-VB资料 如何将整个画面暗下来,如同关机前一般-VB资料 VB获取桌面图象 简单介绍透明位图的实现方法 -VB资料 将图片「非重叠显示」填满整个表格视窗 -VB资料 将英文字母及阿拉伯数字旋转任意角度 -VB资料 将真彩色图像变为256色灰度(BIG5码):-VB资料 VB利用Image控件实现图形浏览程序 利用VB捕捉并保存屏幕图象 切割一个Container中的图片 -VB资料 VB如何改变桌面的图片? VB如何实现“百叶窗”的图形特效? VB如何实现霓虹灯效果 麻烦了:) 如何建立一个button清空文本框? 关于在RedHat2.1As上安装Oracle9i(9.0.1)的错误问题,帮帮我吧,火烧眉毛了! 急等答案 ,请问数据库中 的Null和零值有什么区别,请给详细解释一下 用FLASHGET无法下载. 趁着各位斑竹到任,赶紧把几个悬而未决的问题提出来,呵呵! com+的调用方式 哪位大侠知道今年计算机等级考试二级C语言还是用Turbo C2。0吗?还是在Dos环境下吗?(100相赠) 关于多媒体定时器的问题,各位进来看看 session出的问题,高手请进来!! 请问,大连雅奇培训如何?请指点。。。。。。 怎样用header()做下载文件? 关于检测组合键的程序怎样写? 菜鸟问题!!!页面显示后台数据 请问软件包LEDA -- library of the data types and algorithms 哪里有下载的? 如何获得当前页面中的所有Textbox控件集合? 如何对两个表操作???谢谢! java的程序在写Dreamweaver 4里写完不可以直接用,是不是 打印的问题 DELPHI5的资源编辑器用起来很不爽,有没有好点的? 帮帮忙~~~~ 请问软件包LEDA 哪里有下载的?谢谢 ado连接远程数据库是以文件共享方式,还是c/s方式啊? 有没有工作的JAVA程序员吗? 简单的语法问题 vb还是不太会用 求教 最菜的问题 如何保存无法保存的网页? 只要每人献出一点爱,人人都能成为程序员 呵呵,又有问题了 苦恼,大家帮忙啊 关于声音处理的一个问题 求英文资料,急!!! 帮忙解释一下程序,谢谢:) 怎样实现这样的存储过程?高手快来! 用过websnap的进来看一下,巨简单! 调试版本与发布版本的区别? 急等答案, sql的基本表是用一个存储文件表示还是用若干个存储文件表示 我的Windows 2000有时无法关机(重起) ********通过编号找名称!*******求最快的方法!!! 格式化硬盘后安装WIN98过程中为什么出现蓝屏,继续安装下去连软件都安装不了? 请教一个让人郁闷的问题! 寻找一本人民邮电出版社出版的有关 GSM 网络优化的书 请问高手:能不能动态creatLayer? select * ????? 问候大家 晚上好 ,有个问题请教,立即给50分! 怎样使模式对话框最大化显示? 关于socket 十万火急,大哥大姐快救小弟一命!!!考高程的或考过的请帮忙,感激!!! 求救 跟帖 在SERVLET中,页面怎么跳转呢?客户端可以下载指定的ftp文件。。? 一个数据库连接问题??? 【急』十字绣,怎么把六股线拆成4股十字绣一根粗线里有六股,但需要用四股线,怎么分呢?分开了,如果很散,怎样拧成一大股? 质量为m的物块,系在弹簧的一端,弹簧的另一端固定在转轴上,弹簧的自由长度为L.劲度系数为K,使物块在光滑水平支持面上以角速度w作匀速圆周运动,则此时弹簧的长度为多少? 稀土怎么样才能开采? 已知集合A={x|-2 The hot tiles on the floor will melt your 稀土怎么开采 集合A={y|y=-x^2+4,x∈N.y∈N}的真子集的个数为( ).A.9 B.8 C.7 D.6 一个蚂蚁从5楼掉下1楼来为什么没有摔死?这是我很长时间搞不懂的问题啊.求救`` 稀土怎样开采 隋朝的长安和洛阳分别是什么时期营建的都城 若集合A={x|x=2k-1,k∈z},B={x=4L±1,L∈Z}则 A,A=B B,A是B的真子集 C,B是A的真子集 D,A∪B=Z The ice started ( ) (melt) 你们经常用哪个动物的表情看看哪个好看好笑的 某列车均速前进,从它驶上300米的桥到通过为止,一共用了三分之一分钟,又知一盏固定的灯一直照列车10秒,求这列车的长.(要写过程) 蚂蚁为什么从高楼上跳下来不会摔死? 青蛙的益处 在空气中弹簧测力计测得物重2.7牛,将其一半浸入水中,示数变为2.2牛(g取10牛每千克)求物体所受浮力大小物体的密度 两股线绣的十字绣,半针应该用几股线… 求一篇有关养宠物的好处的英文对话,急! 有一石块,在空气中称的重为19.6牛,全部浸没在水中称得重为14.7牛.问:(1)石块的体积多大 (2)石块的密度是多少? 十字绣中格的半针绣用几股线? 养宠物好处英文 有一金属块,在空气称得它的重是72牛,当它全部浸没水中时,弹簧秤的示数为52牛(g=10牛/千克)(1)金属块所受的浮力(2)排开水的体积 "Melt down" What's Meaning? 成都离最近大海有多远 某列车匀速前进,从驶上300米的桥到完全通过,一共用了1/3分钟,又知列车通过桥上一灯塔用时10秒钟,.某列车匀速前进,从驶上300米的桥到完全通过,一共用了1/3分钟,又知列车通过桥上一灯塔用时 十字绣怎么勾边?一般用几股线? 小行星最近离我们的地球有多远?有意者都给我一个答案我吧? melt temperature是什么意思 1、如下图所示,质量为m的重锤从高h处自由下落,打在质量为M的木桩上,重锤与木桩一起下沉距离s.求木桩在下沉过程中遇到的平均阻力.(M+m)g+m^2gh/(M+m)s为啥? 一个人面对另一个人时都会看着对方的脸,因为人类能够读懂面部表情.但是你发现没有,当动物面对你时,也是看着你的面部,即使是个体比人小得多的猫,当它面对你时也绝不会盯着你的脚看.难 地球离各个星球的距离? 英语翻译 求许多动物做同一动作的表情 比如 兔斯基 嘻哈猴这类的都做一个表情 比如揉脸、鼓掌啥的 有的发804931395@com最好要动态的哇 2L 搜的到还找你呀 甲乙2石头,大小不同,石质相同.甲石质量1.5千克,体积4立方分米,乙石质量18千克,体积多少? 像蚂蚁一样不会摔死的动物急………………………………!摔不坏的东西也可以 光子到底有没有质量 甲、乙两块石头,大小相同,石质相同.甲石头质量是1.5千克,体积是4立方分米.乙石头质量是18千克,体积是多少? 下载是什么意思 某人站在高楼的平台边缘,以 20m /s的速度竖直向上抛出一石子,求抛出后石子经过离抛出点 15m 处所需要的时间.(g= 10m /s2). 甲乙两块石头,大小不同,石质相同,甲石头的质量是1.6千克,体积是4立方分米.乙石头的体积是40立方分米质量是多少? 蝎子毒还是蜈蚣毒? 胎生的是哺乳动物,那下蛋的叫什么动物像老虎,狗,猫喂奶的叫哺乳动物,那鸡,鸭这些下蛋的叫什么动物啊? 我国公民全部政治生活的基础和准则(基本内容)是 down的意思 谁能告诉我有关简单的细菌与霉的知识细菌的认识和什么是霉 我国公民暴雨政治生活的基本原则是什么 Bend down是什么意思快 为啥子有的哺乳动物会下蛋? 我养宠物的英文怎么说 顺便问一下,活S菌加活R菌, 细菌靠生物而活那么什么靠细菌活? 日本地震到底死了多少人呢?拜托了各位 谢谢 关于用红细胞计数法测定活细菌数量的题目有人采用下列方法进行酵母菌的计数:将500个红细胞与5毫升该培养液混匀,然后制片观察,进行随机统计结果如下: 视野1 视野2 视野3 视野 为什么有的哺乳动物会下蛋?不许抄袭答案 十字绣用丝线绣好看还是用绵线绣好看以前只绣过一个钱包,听说丝线绣比较慢,这点倒没什么.丝线绣有哪些好处与坏处,请各位妹妹赐教 一个篮球从高出自由落下,每次接触地面后弹起的高度2/5.如果这个篮球从25米的高处落下.问:那么第三次弹起的高度是多少? 十字绣4股线应该折几折? 为什么蚂蚁从高出掉下不会摔死? 球球从高处自由落下球从高处自由落下,触地面又弹起,每次弹起的高度都是下落高度的2/5,如果球从35米处落下,那第三次弹起的高度是多少 就业市场前三季度逆势走稳 未来总量存日本最新型潜艇“黑龙”下水 苍龙级潜教皇被爆长期遭美监听 意大利梵蒂冈 上海摊位占道多年难除 城管称有保护伞上海自贸试验区注册地不小于20平方米江苏:物业费不满3年就涨 业主可要求南京鼓楼推行公务自行车 评论:别止于温州全省首推非现场记分交通违法网上处南京“礼让斑马线”行动满月 109人黑龙江非转基因大豆产业遇危机:加工一苏州一公交司机工作时猝死 安全停车2专家:房产税遗产税的推出应逐步探索小狗“旺财”被遗弃后痴等主人 从春天实拍!迪拜七星酒店上的高空原地转圈烧四川竹溪村十余年频现盗尸 24小时守欧盟成立20周年一体化频遭挑战 经济中国珠算进入2013年联合国人类非物日本最新型潜艇“黑龙”举行下水仪式俄八旬老汉野外斗熊 被摔下悬崖后逃出索契冬奥会火炬将由14架直升机护送入加拿大首设“比特币”ATM机 被批缺无证“司机”帮倒车引发事故谁担责中国500强民企 许昌上榜4家上游的水将在这里沉淀过滤和中移民:美移民面临关键期 把握时机主力收复3200点藏三大重磅信号郑州严查高污染农用车一个村民眼中郑州的拆迁与变化主力收复3200点藏三大重磅信号海岛奇兵主攻流怎么玩 主攻升级攻略飞轮海解散了吗 飞轮海为什么解散了李湘王岳伦离婚因男方劈腿小姨子SuperJunior圭贤骂韩庚忘恩浓情中秋 易到用车礼品卡团圆相伴研华携手松下、和椿科技,签约工业4.姚笛吴镇宇艳照曝光 姚笛吴镇宇到底什梦幻西游手游血耐宠内丹选择 内丹选择专访联飞翔:“联姻”人保 剑指汽车后欠债不还被人贴大字报拉横幅追债的10张朝阳与张歆艺什么关系 张朝阳喜欢张唐嫣邱泽为什么分手 唐嫣自杀是真的吗如何识别翻新二手车
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘