Обычно я использую SQL Server в качестве базы данных для своего проекта, но один из моих проектов касается шейп-файла ESRI, который использует формат .dbf в качестве базы данных (я думаю, что это был формат DBASE III или IV).
Я хочу создать некоторый веб-интерфейс для изменения значения, которое уже существует в dbf, например, сделать так, чтобы клиент мог редактировать название улицы, если оно было неправильным, или адрес для нескольких мест.
В прошлом у меня уже было запущено приложение Classic ASP 3.0, и я хочу интегрировать новую функцию.
Мой вопрос:
1. Что такое строка подключения (предпочтительнее без DSN) для взаимодействия с DBF?
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 для поставщика OleDB, все работает нормально, теперь я могу просматривать/редактировать/удалять записи
http://www.sybase.com/products/databasemanagement/advantagedatabaseserver/ole-db-provider
Спасибо, Делс