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

在Delphi中使用DBF数据

HTML文档下载 WORD文档下载 PDF文档下载
在Delphi中使用DBF数据

---- Delphi是美国Inprise 公司开发的功能强大的Windows 应用程序开发工具。她是可视化应用程序开发环境、可重用性面向对象编程语言、快速编译器和数据库技术的完美结合。由于Delphi具有运行速度快、功能强大、易于学习和使用且开发迅速等特点,并支持XML和HTML,支持 Web 和Internet的开发,一直受到广大用户的喜爱。

---- 国内PC机上使用最普及历史最长的数据库是DBF格式的数据库,即是dBASE II、dBASE III和FoxPro中使用的数据库格式。为了充分利用已有的数据库资源,并能在Delphi环境下开发功能更强的应用软件,本文将讨论如何在Delphi中使用DBF数据库(数据表)以及其转换的方法。

---- 一、直接使用DBF格式的数据库

---- 若将DBF格式的数据库或表作为应用程序开发中的数据资源,应在Delphi中的"BDE Administrator"数据库引擎中用DBASE或FOXPRO作为配置参数,这样就可以在Delphi中修改和直接访问DBF数据,参见BDE配置工具图(略)。

---- 二、转换成Delphi环境中的Paradox数据表

---- Delphi开发工具允许用户创建和访问Paradox 和Local InterBase等服务器的数据库应用,这里我们讨论将DBF转换成Paradox 数据库的方法。

---- 1、使用数据库桌面Database Desktop --Delphi提供的辅助工具之一

---- 用Database Desktop(参见图2)的复制功能来实现转换,其操作过程如下: 1)选用菜单"Tools/Utilities/Copy…",将出现"Copy"对话框,让用户指定将要转换的DBF源文件,这里我们选择了student.dbf文件,并按下"OK"键。

---- 2)这时,出现"Copy to" 对话框,选择目标文件名或在文件名编辑框里输入一个新目标文件名,并给出Paradox数据文件的扩展名.db。

---- 3)然后选择"Copy"按钮。

---- 此时,Database Desktop将DBF数据student.dbf转换成了Paradox 的student.db数据。转换过程中,其数据结构的字段类型变化参照表1。

---- 表1:

在DBF的字段类型 转换成Paradox字段类型

------------------------------------------

C Alpha

F(浮点型) Number

N Number

L Logical

D Date

Memo Memo

OLE OLE

Binary Graphic

-----------------------------------------

---- Paradox 确保从DBF备注字段转换来的数值是文本格式,否则如含有其他类型的数据,就应该使用Add功能添加该备注字段到相应的Paradox BLOB类型字段中。

---- 同样,也可以将Paradox数据库表转换成DBF格式,其字段类型将按参照表2自动地转化。如果生成的DBF不含有索引文件、浮点类型字段和备注字段,则Database Desktop 将产生一个dBASE III数据库表;如果生成的DBF表含有OLE或二进制字段类型,则Database Desktop 将产生Windows的DBF数据库表;否则将生成一个dBASE IV数据库表。

---- 表2:

-----------------------------------------------------

在Paradox中的字段类型 转换成DBF字段类型 备注

----------------------------------------------------

Alpha C

Number N(20.4)

Money N(20.4)

Short N(6.0)

Long Integer N(11.0)

BCD N(20.4)

Date D

Time C(8)

Timestamp C(30)

Memo Memo

Formatted Memo Memo 格式丢失

Graphic Binary

OLE OLE

Logical Logical

Autoincrement Number

Binary Memo 不能显示数据

Bytes Memo 不能显示数据

-----------------------------------------------------

---- 2、使用数据管道Datapump --Delphi提供的辅助工具之一

---- 用数据管道的移动功能可以实现DBF数据库表转换成Paradox的数据,其操作过程如下:

---- 1)使用Borland数据库引擎BDE,为源数据库和目标数据库各建立一个别名;

---- 2)启动数据管道Data Pump,在其向导程序中指定源数据库的别名或路径;

---- 3)指定目标数据库的别名;

---- 4)从源数据库中选择要移动的数据表(可以选择一个或多个),这里我们选择student.dbf;

---- 5)通过按钮"Modify Mapping Information for Selected Item",修改数据表的结构信息,以适应目标数据表的需求。当选择此按钮,进入"Modify Fields"对话框,从而可以逐一选择DBF数据表的字段名,并修改成所需的Paradox 数据类型,以及目标数据库中不支持的字段类型、索引和数据的完整性等。

---- 6)单击"Upsize"按钮,使DBF数据表移动到Paradox 。

---- 7)浏览数据移动结果,若有不满意之处,可以在目标数据表中直接修改;或者观察"Report"对话框显示的移动过程的详细记载,若满足需求,击"Write a copy of this report to file"按钮,输入文件名student.db而保存转换的结果。

---- 除了DBF和Paradox 数据之外,Data Pump也可以应用到其他的PC数据库或SQL Server数据库之间的转换。

---- 3、使用Delphi数据访问部件(Data Access)中的BatchMove控件 BatchMove控件具有对成批的记录、整个数据库表进行移动、拷贝和删除操作,但是它不能复制源数据文件的索引和纠错规则等。将DBF 数据库转换成Paradox的数据表操作过程如下:

---- 1)在Database Desktop 中建立Paradox 数据表student.db 的表结构,使其字段顺序等与DBF格式的student.dbf相对应。

---- 2)在Delphi数据访问部件Data Access中选择两个控件Table,并分别将Table1和Table2连接到源数据文件student.dbf 和目标文件student.db。

---- 3)在Delphi数据访问部件Data Access中选择控件BatchMove放在一个Form上。

---- 4)将BatchMove的Mode属性设置为batCopy(功能:复制源文件数据到目标文件中)。

---- 5)设置Source 属性为Table1,Destination属性为 Table2。

---- 6)用鼠标右击控件BatchMove,选择弹出式菜单中的"Execute"项,此时,执行复制功能,即将DBF数据库转换成Paradox 数据表。

---- 以上仅向同仁交流我在Delphi编程中的一点体会,且希望在编程过程中互通经验,共振我国软件之兴。

逗你玩?淘宝开放平台从4月1起开始全面收费 出现编程疲劳?千万别纠结 “编程竞赛界王子”教你更好的招聘程序员 SA:三星全球智能电视市场份额达26% Cocos2d-x 3.0分语言包发布 最新进展即将披露 友盟:社会化分享成为APP开发“标准配置” 从“简单”的封面设计剖析Netflix背后的数据哲学 与Linus Torvalds“并列”,虚拟化天才程序员法布里斯贝拉 让超级计算机和数据中心“飞”,Intel推800Gbps神器MXC 【OSTC讲师专访】Debian开发者李道兵:平静地理解开源 红帽推出开源业务流程管理套件:JBoss BPM Suite 6 科学研究证明:程序员快乐才能更好的工作 ChocolateChip-UI:能“逆转”的跨平台应用开发框架 分享12款最佳的Bootstrap设计工具 Apache Flex 4.12发布,支持iOS 7 智能手机应用挑战Web平台,看W3C如何反击? 电信级数据流量与监控系统部署案例分享 TCL联手Mozilla,HTML5智能电视真的要来了! 先睹为快:Unity亚洲开发者大会虚拟游览展示 OSTC&#183;2014 演讲日程出炉,Perl创始人来了! Unity将收购Applifier,并引入Everyplay和GameAds两大平台 《近匠》从Cubieboard到radxa:汤亮的第二次硬件创业 九头蛇与大象之争,Hydra或将取代Hadoop 喜讯:中国安全团队Keen成功在Pwn2Own 2014黑客大赛上攻破64位Mac上的Safari OCP黑客马拉松冠军:24小时头脑风暴背后 新时代应用程序设计及MongoDB的十个深入理解 借助“开源”东风 英特尔打造卓越“软实力” 深圳综合交通设计研究院张鹍鹏:智能交通设备领域已成红海 信息化是发展趋势 25个可遇不可求的jQuery插件 Web设计中对视差设计的误区 直接拿来用,九个超实用的PHP代码片段(二) 赶快来尝试一下吧! 如何在 View 类中编写press any key to continue功能模块 Vc++下应用Matlab数学函数库出错 如何用VB实现自动登录? 赶快来尝试一下吧! ado的问题! 如何传递带“%”的参数? 有全套的ERP源代码为你提供,助你在开发过程中更上一层楼 字符串str=" aaa ",如何变为"aaa" 怎么没有人理俺泥?? 关于dw的问题 如何读入数据库中的HTML格式的正文呢? 一个在阅读<<深入浅出MFC>>中遇到的问题 !!!!急 新手,说找不到mfc42d.dll文件 怎么没有人理俺泥?? 关于dw的问题 FAST.lib 2000 for windows是个什么东东 请问各位一个非常简单的问题 jdk和jvm 笨蛋 大家有什么建议吗? ASP.net如何刷新另一个页面 有一年delphi工作经验的程序员在全国各地的待遇如何?哪个城市有发展前途(钱途)? 100分求解!!!这个问题大家都来看,来者有分!!! 告诉我几个地方,给你几十分,简单吧 :-) 有没有关于VPN的书籍 Interbase源码分析 西瓜是Plmm哎~! 一个字符串替换的小问题。。。 还有一个问题需要问大家。。。特别急。。。 我变成了大家的一员 哪儿有在jbuilder中让三键鼠标可以使用滚动功能的驱程? 我想把ODBC的所有数据源列出来显示,不知道用哪个函数,谁能告诉,多谢了!来就有分 两台机器怎样用一个asdl宽带猫上网 我的vc编译器在我的一个程序就是不出自动变量填补功能,在其他程序上可以,不知为什么 我想把ODBC的所有数据源列出来显示,不知道用哪个函数,谁能告诉,多谢了!来就有分 怎么复制程序自己? 小小问题 我喜欢在等人的时候抽根烟!(在车站接哈尔滨来的哥们) 我想把ODBC的所有数据源列出来显示,不知道用哪个函数,谁能告诉,多谢了!来就有分 如何在SQL服务器端编程截获SQL客户端从工作站机器上的登陆 大家的公司都用ASP做什么?????我一直想问这个问题。 我只有 .ora文件,怎样恢复数据库? 急 关于游戏编程! J2EE的配置问题!! 请帮忙 !!!多谢了!一定给分!!!! 什么类型的共享软件最挣钱? 请教各位大虾一个DLL问题 如何恢复oracle数据库,先安装好oracle,之后再安装了develop2000,修改了oracle_home后oracle就启动不来了。 SDI程序中,如何在MainFrame里,得到文档的指针? Delphi入门提问 请教各位大虾一个DLL问题 是输入IE网址不对还是Apache对该文件common.jsp设置了访问权限? ${java_home}/.. 汽车空调蒸发器温度传感器的工作原理 铁遇到空气会不会生锈回答的越详细越好 初二物理物态变化的知识结构图 请问蒸发器的工作原理和作用有哪些? 二氟一氯乙烯生成四氟乙烯的化学方程式如题 一块石碑体积为5m3,取一小块作为这块石碑的样品,测得它的质量是130g,用量筒装100cm3的水,再把石碑样品完全浸入水中,水面升高到150cm3处,求整块石碑的质量. 高一生物必修1所有实验现象最好是有实验流程,所用试剂及现象,对实验最不熟悉, 铁生锈与空气有关吗?,为什么? 什么是动能,机械能,内能 酒精与钠的反应 高一必修一生物实验总结 表格 铁会生锈是因为空气中的什么? 钠与酒精如何反应? 高一生物必修一第五章总结 蒸馏水是由什么成分组成的,可以饮用吗.自己可以弄吗. 钠在酒精中的反应我可不可以认为 钠在水中反应比在酒精中反应更加剧烈而可以得出水中的羟基更易断水中的羟基比乙醇中的羟基更活泼(我来确认一下理论知识有没有错.) 什么化学药剂和什么化学药剂发生化学反应会变成红色的液体.好像是初3上学期的题 甲乙两烧杯中分别放入0.1molna2o,na2o2,然后各加100ml水,是固体完全溶解.则甲乙的质量分数关系是甲=乙甲 敞口放在空气中一段时间后不会变质的是A:CaO B:NaCl C:NaOH D:Ca(OH)2 氧化镁的熔沸点为何比氧化铝高?按照离子晶体熔沸点变化规律应该是氧化铝的比氧化镁的高? 蒸馏水煮沸了再煮好吗 敞口放置在空气中的氢氧化钠溶液,时间久了会变质敞口放置在空气中的氢氧化钠溶液,时间久了要变质.现有一杯已部分变质的氢氧化钠溶液,其中OH-与Na+(不考虑水的电离)的个数比为3:7,则 用化学键能与晶格能解释为什么金刚石的熔沸点高于氯化钠?为什么高于氧化镁?C-C键的键能是357.7 kj/mol ,NaCl晶格能是738 kj/mol 左右 蒸馏水能饮用吗 用什么方法检验乙醇与钠反应的所产生的气体? 1氧化钠 2氧化镁 3三氧化二铝 的熔沸点高低说明一下原因 老师讲的是 2>3>1 铁在氧气中燃烧和铁生锈,虽然我们看到的什么不同? 可以用什么方法检验乙醇与钠反应所产生的气体? 水蒸气蒸馏分离的原理,有何实用意义?安全管和T形管的作用? 用自来水制取蒸馏水的操作是煮沸还是蒸馏? 23克的钠和足量乙醇反应,生成多少升气体 蒸馏水的沸腾书上说水沸腾时冒出的泡泡是因为水温升高此时气体溶解度降低,说以溶于水的气体就又冒出来了.那我很好奇如果加热的是蒸馏水(或者纯净水),那水沸腾时还会冒泡泡吗? 乙酰苯胺的制备反应瓶中白雾是什么 洗车循环水设备的功能及用途谁知道? 水蒸气蒸馏的适用范围及操作要点? 生铁和铁哪个更容易生锈 戴口罩带橡胶手套接触三氯甲烷会中毒吗? 制取蒸馏水时,水沸腾了会爆炸吗 NaO+H2O生成NaOH,那NaOH会加热分解成NaO和H2O么? 我老公冬天的时候用塑胶手套开了三氯甲烷的瓶子,过几个月后,我又用塑胶手套刷碗,请问会不会中毒 银会和酒精发生反应吗? NaOH可吸收H2O吗 多少氯仿会导致中毒? 能否用水蒸气蒸馏分离以下各组混合物 (1)硝基苯、苯胺 (2)溴苯、铁、三溴化铁 乙酰苯胺的制备中根据反应式计算,理论上能产生多少毫升水?为什么实际收集的液体量 科学实验心得怎么写 硝基苯水蒸汽蒸馏实验中,最后蒸馏硝基苯时为什么不能蒸干?同题 乙酰苯胺的制备反应完成应产生几毫升水,为什么实际收集液体远多于理论量,除用醋酸 怎样可以买到丙酮? 为何不电解氢氧化镁,氧化镁而是电解氯化镁呢 一冰醋酸为酰化试剂合成乙酰苯胺的合成原理是啥? 在西安那里可以买到丙酮啊 "工业上一般用电解「氯化镁」晶体制镁,而不是「氧化镁」"这句话为什么不对,不是问为什么不用氧化镁,而是问为什么不用氯化镁晶体 1,‘下列氯化物熔点高低顺序错误的是 A LiClMgCl2 C SnCl D ZnCl2 在那里可以买到丙酮?北京海淀哪里有? 氯化镁为什么不能一步生成氧化镁 补充锌元素的食物. 薄膜蒸发器的工作原理是什么样的? 煮沸腾的水是蒸馏水吗 哪些食物可以补充锌元素?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘