轻松掌握PB中使用FoxPro数据库的方法

轻松掌握PB中使用FoxPro数据库的方法,第1张

轻松掌握PB中使用FoxPro数据库的方法,第2张

1.用ODBC连接FoxPro数据库

在Power Builder中,直接访问FoxPro数据库只能通过ODBC实现。在开发环境中,可以直接在PowerBar画板上配置ODBC,连接FoxPro数据库。方法如下:点击配置ODBC工具按钮,选择:Microsoft Foxpro驱动程序(*。dbf)放在已安装的驱动程序目录框中。点击“创建”按钮命名数据源,选择版本,取消“使用当前工作目录”选项,点击选择的目录,选择连接的数据库所在的目录退出。

ODBC连接的FoxPro数据库必须满足FoxPro数据库格式,即数据库文件结构必须是:“32字节文件描述若干个32字节字段描述结构描述终止符(0D)记录1,记录2,...文件终止符(1A)”。从这个角度来看,所有传统的DBF数据库文件都可以用这种方式连接。对于在Visual FoxPro环境下建立的表,其结构不同于传统的数据库结构。它在字段描述结束符(0D)和记录之间添加了200多个字节,但是在它被包括在VFP数据库(Dbc)中之前,它的内容是“00”。这个时候还是可以这样连接的。一旦被数据库收录,这个字节已经被其他内容填充,无法再次连接。

在Power Builder应用程序中,事务对象用于连接数据库。这个事务对象,即使有默认的SQLCA,也可以由用户自己生成,方便访问多个数据库。在程序中使用事务对象时,必须首先指出两个属性,DBMS和DbParm。对于FoxPro数据库,还必须指明database、userid、servername等几个属性,这与访问其他类型的数据库不同。Sqlca.dbms="ODBC" //指定连接方法ODBC SQLCA。database = " D:\ PRG \ pub data "//指定连接的数据库所在的目录,sqlca.userid="public" //用户id,都是public sqlca . servername = " FoxPro "//服务器名称:都是FoxPro sqlca . db parm = " connect string = ' DSN = TSC xs ' "//数据源名称连接使用sqlca//实现连接...

通过FoxPro数据库的连接,用户可以在Power Builder开发环境和应用程序中使用这些数据库,快速开发自己的信息管理系统,并实现对这些数据库的维护和管理。

其次,将DBF文件转换为SQL Anywhere DB文件格式

在Power Builder环境下,有一个数据库系统——SQL Anywhere附加。在Power Builder中使用它,用户可以直接建立和维护数据库。在SQL Anywhere中,虽然数据库结构与VFP不同,但概念是相同的,即数据库是系统中的各种相关数据,这些数据被组织到不同的表中,用于不同的目的。这些表格一起构成了一个数据库。与传统数据库(DBF)相比,PB和VFP的表是传统数据库,PB和VFP的数据库类似于传统数据库(DBF)文件所在的目录。在该系统下,SQL Anywhere提供了将传统的DBF文件转换为数据库文件(DB)中的表的工具。为了实现这种转换,用户必须首先建立一个新的表格,然后将DBF文件的内容导入到表格中。

对于DBF文件,它们必须是传统的数据库,如FoxPro、dBase和FoxBASE环境中的数据库。这个数据库文件严格遵循“数据文件= =数据库结构+数据库记录”的格式。其结构如下:“一个32字节的文件描述了多个32字节的字段描述结构描述终止符(0D)

记录1,记录2,…文件终止符(1a)" 03 62 0a 07 02 00
00 00-81 00 4c 00 00 00 00//文件描述:时间,长度00
00 00 00 00 00-00 00 00 00 00 00 00记录
记录号4e 41 4d 45 00 00 00 00 00-00 00 43 01 00 00 00 起始位41 55 54 48 4f 52 00 00-
00 00 43 29 00 00 00//第二个字段0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00……0D 20 50 6F 77 65 72
42-75 69 6c 64 65 72 20 50//结构终止符(0D),72 6F

要在PB(SQL Anywhere)中将BDF文件直接转换成表,操作步骤如下:在PB中新建一个表,打开新表。单击数据库绘图板中的“数据操作”按钮,并选择菜单:行?选择dbaseII & III(*。dbf)从“导入文件类型”下拉框中选择导入文件的目录和文件名,点击“打开”按钮,打开指定文件,将文件中的所有记录导入到新创建的表中。

但是,系统不提供导入数据在该数据库(表)中的直接存储。如果要将导入的记录保存到sql Anywhere环境中的数据库(表)中,可以先将导入的数据行以sql格式保存在. SQL类型文件中,然后使用SQL语句将这些数据行插入到新表中。步骤如下:按照上面列出的步骤导入数据库(DBF)文件中的数据选择菜单:文件?将行另存为…在“保存类型”列表框中,选择:SQL选择保存路径,输入保存文件名,点击保存关闭“数据操作”窗口,返回数据库画板,点击“数据库管理”选择菜单:文件?确保打开的文件类型为:SQL (*。sql)。选择步骤4中保存的文件,点击“打开”按钮删除文件开头的第一条SQL语句:创建表点击“执行”按钮,系统会将原数据库中的所有行插入到新表中。

需要注意的是,新创建的表格的字段设置必须与原DBF文件中的字段一致,即新表格中的字段数量必须等于或大于原DBF文件中的字段数量,并且新表格中字段的顺序应与原文件中的顺序相同。即使新表中有更多的字段,新字段也必须放在末尾,并且新表中的字段名称可能与旧文件中的字段名称不同。新表中的数据类型必须与旧表中的数据类型兼容:字符?字符,数值?数字,数字?字符…数据格式是一致的。例如,两个文件中的日期格式必须一致。新表中的字段长度必须能够容纳旧数据库文件中相应字段的数据。例如,如果旧数据库中的字段宽度是C20,但数据库中所有记录的实际最大长度是14,则新表中的字段宽度至少应为C14。

如果愿意,也可以先将原FoxPro数据库转换成TXT格式文件,再将TXT格式文件导入到SQL Anywhere数据库(表)中。但是TXT文件中一条记录占一行,每个字段必须用Tab键(运算符)分隔。导入方法类似于DBF文件中的数据。

以上两种方法都可以在Power Builder下访问FoxPro数据库,但是两种方法有一些区别:从系统需求来说,第一种方法使用ODBC直接访问DBF文件,只要Power Builder的基本系统就可以了,不需要安装数据库管理系统(DBMS);第二种方法是安装SQL Anywhere系统。从运行效率来看:第一种模式较慢,后一种模式略快。在应用程序中,作者比较了两种方式的速度差异:第一种方式在FoxPro系统中连接一个超过15000条记录的数据库大约需要6秒,然后在数据窗口控件中显示记录大约需要3秒。稍后,第二种方法是在SQL Anywhere中创建一个新表,将这15000条记录导入到表中,然后连接并显示这些记录。ODBC直接用于另一个19万多条记录的FoxPro数据库,连接和显示时间为85秒。

使用Power Builder的主要优势在于建立客户/服务器模式系统。对于一般的单机系统和更小的系统,大部分人大概不会想到。但是如果你觉得FoxPro太老套,Visual FoxPro太难学,可以试试Power Builder。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 轻松掌握PB中使用FoxPro数据库的方法

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情