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

在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编程中的一点体会,且希望在编程过程中互通经验,共振我国软件之兴。

腾讯云俱乐部北京站:知名手游商畅谈云时代开发运营策略 LG再战平板市场:将推出8.3英寸平板G Pad 编程语言与工具专题论坛:各类编程语言使用体会分享 淘宝、腾讯、豆瓣、支付宝、网易专家热议大数据分析与BI实战 “创新或灭亡”:Google的80/20只是转移视线的说辞罢了 自动化编排,配合SDN的iMC V7更加开放 [回顾]比尔·盖茨传奇的前半生 IT基础设施与运维论坛:IT基础设施及运维经验分享 记华为HCC2013 Day1:发力高端存储 HCC 2013虚拟化论坛:虚拟化未来发展方向 Windows 8操作系统市场份额增至7.41% Windows 7仍最受欢迎 【开源专访】Sea.js创始人玉伯的前端开发之路 SDCC 2013:阿里周宝方谈“去IOE”战略及实施 百度和高德:最后谁是地图的王者? 【CTO论道】瑞智和康CEO陶建辉:软硬结合是消费电子新潮流 10大高效率原型设计工具 JIRA与敏捷:李小龙教给我们的敏捷开发之道 百度开放云:Light Up The World,与开发者共享云未来 有胆你就来!11个在线编码大赛 CTO如何避免决策失控:第一步-定义角色 后机械硬盘时代,那些引领风骚的闪存初创公司 致远文杰:传统企业如何实现移动化转型? 记华为HCC2013 Day2:SDN开放编程系统OPS打造生态圈 HCC2013:华为FusionCube融合至简,性能至优 已确认Stephen Elop候选微软下任CEO 英语对于软件开发者来说到底有多重要? SDCC 2013中国软件开发者大会成功落幕 新浪微博宋琦:PHP在微博优化中的“大显身手” 8月份浏览器份额:IE浏览器PC端出现反弹 移动端跌出前五 如何让Ruby项目速度提升10倍 跨平台进行到底:Facebook发布Unity SDK 代理服务器的原理?——有谁知道! 请问怎么在一个对话框程序的文本框中绘图 请问windows网络程序PING编程技术里的几个问题,ICMP回显里面的timestamp是怎么纪录进去的 什么地方可以Down rose?或谁寄给我一个? 编写一个函数,通过指针连接两个字符串!!!!!!!!!!!! 用applet怎样打开一个文件吗? 请问哪种ORB产品实现了com服务器/corba客户机的桥 我读《深入探索C++对象模型》的感受,cber能再回答我一次么? 谁有DELPHI的有关网络编程方面的资料?给我一份可以吗? 关于stringgrid的问题????? 痛苦啊,难道要放弃BCB吗? 大家认为在开发过程中是否不能用全局变量? 如何让LINUX支持我显卡 高手,谁来帮我一下~! 取字符 在SDK中,如何获得客户区的宽度和高度呢??(哪两个函数呢?) 哪里有ATL的电子书下载?最好是中文的! 高手谁能帮帮我呀~~~~~~~! 请教:如何在statusbar的panel中显示一个图标呢? VC++中如何使用OLE对象? 初来乍到,发现这儿JJMM还挺多的。。。 请高人指教~! CSDN中碰到这种问题,该如何解决呢? 如何学习director 你能帮我一下吗?~ 企业商务管理软件,开放全部的源代码及开发文档! 企业管理软件,全套源码及开发文档!!!! 哪里有支持任何波特率的通讯控件下载? net_lover(孟子E章)请进~! 一个有关CWebBrowser的问题,急急急!!! 这样的语句为什么不可以实现一次删除多条记录 plmm是什么意思? 各位大侠,知道哪儿有直接可用的上传文件的控件吗? 多谢了!!! 论坛的题目是不是太没意思了 一个sqlserver7统计的问题?? varchar类型不是可以输入255个字符吗,为什么我输了160个就出现'item XXX doesn't pass validation test ' 唉 ~~~~~ 奈何 ~~~~~ 突然想到个荒唐的问题: 事件和过程有什么不同? 奇怪的事前,高手请进来 我的问题还没有解决~! 这里的高手呢,人听多,会的人不多 申奥倒计时,如果你在线,请进来验证这以历史性时刻,谢谢 我有一个用hook截获鼠标移动的dll,但是没有效果,请问怎么调试? 请教,怎样在java中把Button的背景改做一个图片 对delphi5一个自带例题的疑问。 爆炒MM之水园MM ID一览 窗体和控件的自适应问题? 求《unix》环境高级编程的源程序下载。 在MIS或WEB中有大量的对数据操作的工作,是否所有的insert,update,delete工作都需lock and unlock??? 紧急求助:那里有pb7的最新版本下载(mark200106@sina.com) 感谢stanely :) 8.4÷﹙2.1×5﹚简便计算 递等式 5乘777加13乘555怎么巧算、、麻烦帮我一步一步写出来. 已知a是第三象限角,且sin^4a+cos^a=5/9,那么sin2a等于?最好过程能说得通俗些,因为我懂得还不是很多. (-510)/(+34)/(-0.125)简便运算大师帮忙~ 计算(-1)+(-3)+(-5)+(7)+…… +(-99) 已知a是第二象限角,且sin^4a+cos^4a=5/9,那么sin2a等于 人教版五年级上册数学指导第9页跳一跳0.34×12.5+0.125×66 如何计算1+3+5+7+.+99=?里面有多少项?如何计算呢?===多少? 已知a是第三象限角.若sin^4+cos^4=9分之五5 求sin2a 用梯等式求50*96+57*4+7*66 怎样求证对于任意的角A cosA四次方-sinA的四次方=cos2A 已知a是锐角且cos^4a-sin^4a=3/5,求sin2a(2)(sin^2a+3sinacosa-cos^2a)/(2sin^2a+cos^2a)的值 57乘66分之23如何简便运算? 已知cos2a=3/5,求sina的四次方+cosa的四次方 已知a是第三象限角,sin∧4a+cos∧4=5/9那么sin2a等于 数学题怎么算 /80 = 66 怎么计算 cosa四次方—sina四次方 为什么 等于cos2a 若sina+sin^2a=1,求cos^2a+cos^4a的和 谁给我出题,80道数学题,(简算)和(方程) sin^4a+cos^4a=1,则sina-cosa= 已知sina+cosa=1/2 求:sin^4a+cos^4a 给80分 用算除法小风 小玉 小明是幼儿园里最好的朋友 小风体重14KG 正好是小明体重的8分之7 而小明比小玉的重15分之1,小玉体重应该是多少千克 修一条路,第一天修了8分之3,第2天修了第一天 求证:(1-cosa的4次方-sina的4次方)/(1-cosa的6次方-sina的6次方)=2/311 已知sina+sin^2a=1,求3cos^2a+cos^4a-2sina+1 1+1.2+1.4+1.6+.+9.6+9.8+10怎简便算法 用cosa 表示sin4a-sin2a+cos2a 若cosA+cos^2a=1,则sin^2A+sin^6A+sin^8A等于多少若cosA+cos^2A=1,则sin^2A+sin^6A+sin^8A等于多少 上面那个题打错字母了 ARC sin 0.91ARC( sin 0.91) 是多少的角度啊 用简便算法计算:48×110-4×48-8×48+2×48 sin4a-cos4a=sin2a-cos2a 求证 5分1比1和3比15可以组成比例对吗 (12.5+0.125)×8-81的简便算法 (sin2a-cos2a)^2=1-sin4a 求证! 0.47*2.5*0.4怎样简便运算 1.6*7.5*1.25.请用简算法. (sin2a-cos2a)^2=1-sin4a请尽快给我答案!急!急!急! 0.47*5.9+5.2*4.7-4.7*0.1怎么样简便计算? 6.25*2.7+6.5*1.25的简便算法 证明题:(sin2a-cos2a)²=1-sin4a 63+0.63*2.5+0.63*6.5怎样简便计算, 3.14*1.375+0.314*6.25-3.14*0.2 的简便算法 sin4a+sin2a*cos2a+cos2a=? 求过程,谢谢!sin4a数字是次方 简便计算185/25-4.5/2.5 1.25*7.1+1/8*2.6+0.375的简便算法 求所有的实数a,使得cosA,cos2A,cos4A,…,cos2^nA都是负数.n∈N,实数a就是角A。 5.2×4.8+4.8×4.8简便计算算出来讲原因 1.25*1.6*1.5简便算法 sin a +cos a =1/2 0 2.5×2.4÷1.4+4.8÷2.1×2.5的简便运算 1+2-3-4+5+6-8+9···+1997+1998-1999数一个没错,让你计算, cos(a+b)=3/5 sin(b-pai/4)=5/13 a,b 属于(0,pai/2) 求cos(a+pai/4) 简便运算:4/11*(2/5-1/4) 333*333怎样用简便方法计算? 若0 简便运算:40.5÷1/4*[(1-1/4)*1.2] 333乘以333用简便方法怎么算 已知π/2 简便计算4.5*9*1.2=? 777+777-777x777÷777=?用递等式怎么计算 已知cos2a3/5求cos^2a sin^4a的值
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn