访问Foxpro数据库----用Microsoft Jet 访问桌面…
2008-02-23 06:54:41来源:互联网 阅读 ()
(1)源数据库类型:可以是下列中的一个:
·FOXPro 2.0
·FOXPro 2.5
·FOXPro 2.6
·FOXPro 3.0
·FOXPro DBC
(2)数据库名称:目录的完整路径,在该目录中包含各种希望访问的FoxPro文件(对于Microsoft FoxPro DBC,该路径必须包括.dbC文件的名称。)
(3)源表名称:表的名称。在Microsoft Jet中,把FoxPro的一个数据库文件(.dbf)看作是一个表,因此,指定表名称实际上是指定.dbf文件。在使用时,应去掉扩展名.dbf;如果使用带有扩展名的完整的文件名,则须用数码符号 (#) 代替文件扩展名之前的点(.);对于Microsoft FoxPro DBC,则应使用DBC中的表名。
1.链接FoxPro数据库
为了将FoxPro数据库链接到Microsoft Jet数据库,可以先用OpenDatabase方法打开本地的Microsoft Jet数据库,建立TableDef对象,并设置该对象的Connect和SourceTableName属性,然后分别指定要链接的FoxPro数据库(表)的路径和名称。
例:编写程序,链接FoxPro数据库。在窗体上画一个命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Dim dbsJet As Database
Dim tdfFoxTable As TableDef
’打开MicrosoftJet数据库
Set dbsJet=OpenDatabase ("C:\dbdir\DB2.mdb")
’建立TableDef对象
Set tdfFoxTable=dbsJet.CreateTableDef ("LinkedFoxPro Table")
’设置连接信息
tdfFOXTable.Connect= "FOxPro 3.0; DATABASE=a:\"
tdfFOxTable.SourceTableName="zf01"
’追加TableDef对象以创建链接
dbSJet.TableDefs.Append tdfFoxTable
‘显示确认消息
MSgBOX "Finished linking" & tdfFOXTable.SourceTableName & ".",0
End Sub
该例链接了外部FoxPro 3.0的表,成功后显示确认消息框。
2.打开FoxPro表
如前所述,可以用OpenDatabase方法直接打开外部Microsoft FoxPro表,其参数分别为路径、独占访问值、只读值和数据源类型。
例:编写程序,打开FoxPro表,并显示其内容。
前面的例子链接了一个FoxPro表,该表位于A盘的根目录下,名为zf01.dbf。可以在“可视化数据管理器”中打开该表。我们用下面的程序打开该数据库,然后显示它的内容。在窗体上画一个命令按钮,然后编写如下程序:
Private Sub Command1_Click()
Dim dbsFox As Database
Dim rstAccounts As Recordset
,打开外部FoxPro数据库
Set dbsFox=OpenDatabase ("a:\",FalSe,False,FOXPro 3.0")
’从zf01表中建立Recordset对象
Set rstAccounts=dbsFox.OpenRecordset("zf01")
DO Until rstAccounts.EOF
Print rstAccounts.mc; " ";
print Tab(15); rstAccounts.zd;
Print Tab(25); rstAccounts.jz;
print Tab(35); rstAccounts.jg;
print Tab(45); rstAccounts.rq;
print Tab(55); rstAccounts.lC;
Print Tab(60); rstAccounts.dz
rstAccounts.MoveNext
Loop
rstAccounts.Close
dbsFOX.Close
End Sub
该例打开了一个外部FoxPro 3.0表,然后从该表中建立Recordset对象,最后在窗体上输出表的内容。程序运行后,单击命令按钮,将显示数据库zf01.dbf的内容。
3.将FoxPro数据类型转换为Microsoft Jet数据类型
应用程序在读取数据时,Microsoft Jet将每个FoxPro数据类型转换为相应的Microsoft Jet数据类型,其对应关系见下:
Foxpro数据类型 Microsoft 数据类型
character text
Numeric,Float Double
Logical boolean
date date/time
memo memo
General long Binary
Double* double
currency* currency
integer long
datetime* data/time
(注:*只用于Microsoft FoxPro 3.0 和 Microsoft FoxPro DBC。)
4.处理己删除的记录
当在应用程序中删除FoxPro表中的记录时,该记录被加上删除标记,但是该记录并没有从表中移走,因为在表被压缩之前FoxPro不会发现标记为删除的记录。不能通过Microsft Jet压缩FoxPro表,必须压缩FoxPro数据库以从物理上移走记录。尽管加了删除标记的记录实际上并未从源数据库中移走、但它们也不会出现在应用程序中,因为Microsoft Jet可以自动筛掉标记为己删除的记录。如果希望标记为删除的记录出现在数据集中,必须将Windows注册表中\HKEY_lOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Xbase键的Deleted值设置为False,并且必须重新启动使用Microsoft Jet的应用程序,以反映记录被删除的情况。
5.处理FoxPro索引
使用适当的FoxPro索引文件(.idx或.cdx文件),可以提高Microsoft Jet对各种FoxPro表的访问速度。通过建立与FoxPro数据库同名的文本文件并加上.inf文件扩展名,可以在.inf文件中指定索引文件。假定有一个名为Sales.dbf的FoxPro数据库文件,为了建立相应的.inf文件,可按如下步骤操作:
(1)建立文本文件Sales.inf。
(2)在文本文件的第一行,指定数据库类型,并把它放在方括号中。例如,为了指定
FoxPro 3.0的索引,可以键入:
[FoxPro 2.0]
(3)对数据库的第一个索引赋予一个索引号。第一个索引记为IDX1,第二个记为
IDX2,以此类推。如果要为FoxPro数据库指定组合索引文件(.cdx),则应使用形如CDX1,
CDX2等的索引号。如果在索引号之前加上字符“U”,则可以指定唯一索引。
(4)在索引号之后加上一个等号,再加上要指定的索引文件名(包括扩展名)。注意,
在该项中不能有任何空格。例如,要指定索引custname.idx作为第一个索引,而唯一索引
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:怎样关闭一个正在运行的程序
- 访问Foxpro数据库----用MicrosoftJet访问桌面数据库(二) 2018-06-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash