第十八节 SQL查询实现ACCESS库表与DBF表间的转换
“DBF”是“DataBase File”,即数据库文件的意思,“*.dbf”格式的文件是dBase、FoxBase和FoxPro所使用的数据库格式,在Visual Foxpro中称作自由表。DBF格式数据库是常用的桌面型数据库,作为一个在商业应用中的结构化数据存储标准格式,DBF格式文件得以广泛的应用于各类企业及事业单位用于数据交换。
ACCESS的JET/ACE数据库引擎并不直接支持高版本的Visual Foxpro的DBF表文件,只提供了对dBASE III、dBASE IV、和dBASE 5.0的支持,这样我们就可以通过这三种版本的dbf文档与各种版本的FoxPro进行数据交换了。
一、导入与导出DBF文件的SQL语法
在导入与导出的过程中DBF表文件所处的位置不同,一个是源表(在导入ACCESS时),另一个是目的表(在导出为dbf表时),因而语法也有两种情况:
一个是作为源表的DBF表文件的语法:
FROM
tableexpression IN ["path"
"type"] | ["" [type; DATABASE=path]]
另一个是作为目的表来操作DBF库表的语法:
[Select |
Insert] INTO destination IN ["path"
"type"] | ["" [type; DATABASE=path]]
语法的的各项说明如下表:
项目
|
说明
|
Destination与tableexpression
|
此处都是指库表文件名,这里是名为“*.dbf”的数据库文件。
|
Path
|
DBF文件所在的文件夹全路径,包括盘符及文件夹。
|
Type
|
这是应该是指数据库的类型,此处应该是dBASE III、dBASE IV、和dBASE 5.0。
|
由于这两种情况下只是数据流动的方向不同,对于操作DBF表的语法来说是差不多的,所以我们示例中就只从一个方面来说明用法了。另外,对dBASE
III、dBASE IV、和dBASE 5.0等不同版本的DBF的处理,只要替换数据库类型即把语句中的“dBASE III”替换成“dBASE IV”或“dBASE 5.0”就可以了,反之亦然。
二、导入或导出DBF库表文件
我们有一个ACCESS示例数据库,里面有一个名为“学生成绩”的表,打开如图18-1所示的样子:
图18-1:学生成绩表中的记录
现在我们将此表导出为dBASE
IV的DBF文件,SQL语句如下:
Select * INTO [dBASE
IV;
DATABASE=D:\SQL
for ACCESS\;].TestTable.dbf
FROM 学生成绩;
执行后效果如图18-2所示:
图18-2:执行SQL导出dBASE IV格式的DBF文件
单击“是”后就会在指定的路径下生成一个名为“TestTabl.dbf”的DBF文档,如图18-3:
图18-3:生成的DBF文件
细心的读者可能已经发现了一个情况,我们在SQL查询中指定的文件名为“TestTabl.dbf”,而最后生成的却是“TESTTABL.DBF”,与前面的不一致,大家知道是为什么吗?这是因为时期的系统只支持“8.3”结构的文件名,系统自动为我们截短了的缘故。
三、其它几种SQL语句的写法
其一:
Select *
INTO
[Test01.dbf]
IN ''
[dBASE III;
DATABASE=D:\SQL for ACCESS\;]
FROM 学生成绩;
执行后效果如图18-4所示的样子:
图18-4:导出表为dBASE III格式的DBF文件
其二:
Select *
INTO
[Test02.dbf]
IN 'D:\SQL for
ACCESS\'
[dBASE 5.0;]
FROM 学生成绩;
这个语句是将ACCESS的库表“学生成绩”导出为“dBASE 5.0”格式的DBF文件,执行后如图18-5:
图18-5:导出为dBASE 5.0格式的DBF文档
其三:
Select *
INTO [dBASE IV;
DATABASE=D:\SQL for
ACCESS\;].[Test00.dbf]
FROM 学生成绩;
运行后如下图18-6:
图18-6:导出为dBASE IV格式的DBF文件
OK,关于DBF文档的导入与导出就讲到这里,谢谢阅读,请多多提意见。