访问&从Classic ASP 3.0操作DBF

时间:2009-03-12 04:12:04

标签: asp-classic vbscript dbf

通常我使用SQL Server作为我的项目的数据库,但我的一个项目处理使用.dbf格式作为数据库的ESRI shapefile(我认为它是DBASE III或IV格式)。

我想创建一些用于修改dbf上已存在的值的Web界面,例如,如果街道名称不正确或者地址在几个地方,则客户可以编辑街道名称。

过去我已经运行了经典ASP 3.0应用程序,我希望集成新功能。

我的问题:
1.什么是用于与DBF交互的连接字符串(更不用DSN?) 2.有人可以给我一些检索/更新记录的例子吗?

我已经读过这个:
http://www.intermedia.net/support/kb/default.asp?id=761
http://www.motobit.com/tips/detpg_asp-dbf-database/

没有工作,目前我的代码是这样的(不工作):


Set connDBF1 = Server.CreateObject("ADODB.Connection")
connDBF1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\digimap;Extended Properties=""DBASE IV;"";"
connDBF1.Open

Set connDBF2 = Server.CreateObject("ADODB.Connection")
connDBF2.ConnectionString = "DBQ=D:\digimap;DefaultDir=D:\digimap;Driver={Microsoft dBase Driver (*.dbf)};ImplicitCommitSync=Yes;MaxBufferSize=512;MaxScanRows=8;PageTimeout=5;Threads=3;UserCommitSync=Yes;"
connDBF2.Open

set rs = connDBF1.Execute("SELECT * FROM taspat_ka_jawa") 
set rs = connDBF2.Execute("SELECT * FROM taspat_ka_jawa") 

错误是

Microsoft JET Database Engine error '80040e37' 

The Microsoft Jet database engine could not find the object 'taspat_ka_jawa'. Make sure the object exists and that you spell its name and the path name correctly. 

test_dbf.asp, line 11

我很确定“taspat_ka_jawa”已经在“D:\ digimap”

<小时/> 解决
我使用Advantage ADO for OleDB Provider,它运行正常,我现在可以查看/编辑/删除记录 http://www.sybase.com/products/databasemanagement/advantagedatabaseserver/ole-db-provider

谢谢, 德尔斯

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

您可以尝试Microsoft Visual Foxpro Ole Db Provider。 VFP(在某种程度上)与dBase文件兼容。