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

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

辞旧迎新 老牌游戏开发商的移动进化之路 iSuppli:硬盘市场持续萎缩 大数据应用成重要市场 全球最大校园Hackathon:失败后,你能学到什么? 走进Evasi0n,越狱黑客如何拿到iOS权限 提升服务扩展性和冗余的八个编码方向 分析数据预测未来?数据挖掘绝不是大公司的专利 揭秘LinkedIn数据科学家如何工作 为什么响应式设计对SEO有好处? SpaceX团队:想登陆火星吗?学好C++吧 可穿戴设备:越来越清晰的苹果iWatch 苹果设计师:开发者们的应用图标设计对了吗? AWS兴起之路:尚未成功 仍需努力 John Carmack:我们为什么不开发Linux游戏 最具创新力公司50强:耐克居首 Web如何成为另一个应用商店 Adobe发布Photoshop1.0.1源代码 大数据时代正在到来 微软CFO:我们的移动战略没有“B计划” TIOBE 2013年2月编程语言排行榜:历经十月Java重返第一 为让用户亲身体验产品 谷歌年底或开零售商店 谷歌推Chrome API支持HTML5实现本地离线数据存储与同步 Ubuntu开发者预览版将于月底开放下载 因Java漏洞,Facebook遭受恶意软件攻击但未泄密 HTML5预测 取代本地App将成为可能 2013年最佳实习企业:微软仅居第三 助力响应式设计:Adobe发布最新HTML5工具包 VMware控告Hortonworks恶意挖角 2013年大数据真谛:实时分析与批量处理 微软招聘信息证实Windows Blue项目正在推进 研究人员正开发永不会崩溃的计算机 Google:开发者应尽早进入可穿戴式计算 空值可以用NVL判断,请教空格如何判断呢?非常感谢! 感情问题,我该怎么办? 请教各位高手,关于使用JSP与mysql的登录问题!急!急!急!急!急! 这里有一个数据库以外的问题,大家帮忙看一下??? 请教:listbox如何通过双击选中项,删除该项,并添加到另一个listbox呢? 远程备份sqlserver2000数据库问题! 》》》高手来看看这个问题,编译器错误,搞不懂了。《〈〈 如何使用標尺 请问在stringgrid控件中可否一次在不同的cell中填入不同颜色的文字? 120分求解!! "模态"窗体的全屏与非全屏切换 用VC做DCT变换的同仁多吗? 急!急:如何使用链接来调用运行本地应用程序(exe文件)?请高手指教,多谢! 如何将一个ip捆绑多个域名,并且将域名与虚拟主机一一对应?这样作dns或路游等设置较普通设置有何异样??请高手指点,谢谢!!! 如何在一个win2k server的服务器上创建一个MSMQ队列! 请大家帮忙看一下,这个问题怎么办???? 请问vb里面的直方图用哪个控件,怎么画? vc和java,哪一个更有钱途? 請問哪里有條碼字體下載??? 看<windows程序设计>(第五版)章节上有什么顺序吗? 关于windows 可执行文件的结构问题! 如何才能得知当前路径?比如VB的App.Path? 能否向asscess添加图像字段,如果可以,那么要怎样写入和读出,请各位关注 谁知道用代码在treeview web控件中,添加node的方法? 关于金山公司的词霸那样的弹出菜单怎么做? 我从哪里可以买到powerbuilder8的多媒体教学光盘?thanks! 哪伟大侠有GB2322的汉字内码表啊? 关于对眼球经济的探讨(请各联盟盟主来看看!!!) 错在哪里? 如何才能实现将ListView的一列拖到另外一列的位置? 在VC#中订阅消息要手工输入,为什么不做成VB一样?有简单方法吗? 请问网吧管理软件是如何使屏幕变暗,并显示自己的对话框,禁止其他操作的? 第一次用VB,请指教 多线程中如何申请一块存储空间 Code Guard是什么东东?在线等待,马上给分! 这个错误是什么原因啊? 请问怎样获得默认打印机名! 哪位大虾能给小弟一点有关汉诺塔问题的资料呀?! ShellExecute(this.Handle,null,"c:\\",null,null,1)问题再探 PB6.5如何实现选择文件路径对话匡?急!在线等待。 为什么下面的enum定义要有一个方括号? dot menu是什么意思? 请教大侠为什么(333)这句不执行 如何将olecontainer载入的word文件全部显示,而不只显示第一页? 简单问题! 高手帮忙!如何通过服务器来自动查找、替换客户端文件 为何timer控件失效? @这个字符在C#中有何具体意义?不解 如何将sql server的检查约束延迟到Commit时 ado连接sql库问题 为何无法ping自己的地址呢? 描写神态的片段 北极因纽特人现在还住在冰屋么? 怎么才能看出玻璃杯是热水杯还是冷水杯呢 描写下棋的片断400字左右, 爱斯基摩人住的冰屋里面温度是多少啊? 水的比热容比沙的高,也就是说水在同质量升高(降低)同温时,吸收(放出)的能热量比沙大,为什么沙在一天中变化更大(我的想法是沙的比热容更大) 哪一种食品保鲜袋好?求介绍啊? 有关下棋的片段描写就10分钟快点来个RT 冬天,因纽特人喜欢就地取材住冰屋到底对还是错 各位打扰下,哪一种食品保鲜袋好? 什么东西里含有花青素?列举各种含有花青素的东西 “220v 100w”灯泡正常发光多少小时消耗1度电.详述快 地球重要的元素与物质是什么?同上 一个描写人物神态的好片段 哪些食物含丰富的的花青素? 设函数f(x)的定义域为正实数,且有1.f(1/2)=1 2.对任意实数x、y都有f(xy)=f(x)+f(y) 3.f(x)为减函数1)求f(1/4)、f(1/8)、f(1)、f(2)、f(4)的值2)解不等式;f(-x)+f(3-x)≥-2 怎么检测食物中是否含有花青素 什么食品里含有花青素? 速求:f(x)是奇函数,且满足f(x+4)=f(x),又当0≤x≤1时,f(x)=x,则f(7.5)的值为_____ 什么食物含花青素 九年级物理!急啊!第一题.是选A还是C?我感觉A是蒸发吧. 什么东西花青素最多? 哪些食物富含花青素? 爱斯基摩人的冰屋是通过防止什么阻止热传递,从而起到保温防寒的 一个木块放在恰好装满水的烧杯中漂浮,溢出水3g,则浮力为0.3N 地球自转使得地面上的物体都要和它一起转,带着空气转吗?那没有空气的外太空的空间也带着转吗?我的意思是说空间飞船0速的时候也带着一起转吗? 因纽特人的冰屋问题因纽特人能否在屋内生火做饭?为什么?因纽特人用水作为砌砖的“泥”,这是利用了水的那个性质?用一块湿布,放到冰箱冷冻室的一块肉或鱼上边,过一会儿能否用这块布把 只求判断答案对错傍晚(6点左右)的电灯没有午夜(12点)的电灯亮,为什麽?我的回答:应为电线有电阻,傍晚时每户人家用大量的电(照明等),电线分了较多的电压(串联分电压),而午夜 近地面大气和地球大气地面辐射给近地面大气后,近地面大气会逆辐射给大地,有一些则会层层上传,是上传给宇宙空间还是地球大气? 爱斯基摩人 冰屋 PE聚乙烯食品保鲜袋安全吗? 什么食物含花青素多 五角硬币和某种汞盐置换反应,五角硬币表面变成了银白色,且表面有点滑.请问是什么汞盐,硬币现在有毒吗硬币的银白色洗不掉.汞是液体,但是为什么现在没有液体 为什么地球不是圆球 花青素是什么东西 电感与什么有关?关于变压器的电感的测量.如果我在一个变压器的初级测它的电感,次级一头的线圈会对这个测量产生影响吗?谢谢!我不拆开变压器,测量初级线圈的电感,再测量次级线圈的电感 如果地球不是圆球体会出现什么情况?是立方体或一个平面 描写花的段落.1.总写,不能只写一种.2.秋天的,盆栽的. 变压器二次则分别带纯电阻,纯电容,电阻和电感,电阻和电容的无功功率是从哪里吸取的? 判断地球不是正圆球的依据是什么? 描写花的的段落 如何使用QJ44型双臂电桥测量变压器绕组的直流电阻视频教学 【【【写一语文小片段】】】谈实验对自然科学的重要性议论文(短篇就好)自拟论点,摆一个具体的事实,注意议论文的三步骤:提出问题,分析问题,解决问题.注意:材料要确凿, 结论不 描写花的片段三行以上!三行三句!11 动作的描写片段要快. 证明:在纯电阻电路中,串联电路上消耗的总功率P=UI等于各个电阻上消耗的热功率 谁知道有关花的描写片段? 描写动作的小片段 _______________________________________________________________________________ 写一个片段假如你只有三天光明,你将如何使用你的眼睛? 描写花的片段, 描写人物动作的片段小说里的书里的还要有赏析的 写一个语文段落请写一个含哲理的语段,阐明人和人之间如何创造出美好的境界,要用上“尊重”、“关爱”、“信赖”3个词.要求100~200个字! 帮我看看我怎么错了宇航员在某一星球表面上的某高处,沿水平方向抛出一小球.经过时间t,小球落在星球的表面,测得抛出点与落地点之间的距离为L.若抛出时初速度增大到原来的2倍,则抛出点 求描写人物动作的片段!不要自己写的...就是在书中摘出的...再写下是哪本书中的... 求写语文片段1.写人的.2.写景的.3.写事的.麻烦你们 第6题 描写动作的段落 写一个语文100字小片段在你的生活中一定有深深感动过你的人,那就请你介绍其中最让你感动的那个人吧.要写出真情实感. 北极因纽特人为什么住冰屋 准备好气球2个,塑料杯《或者玻璃杯》1个,热水. 动手做 1.把气球吹满气并且绑紧.2.向杯中倒入半杯热水《约70度》3.热水在杯中停留20秒后,把水到出来.4.立刻将杯口紧密的倒扣在气球上.5.轻轻
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘