Соединение ODBC на сервере вам не поможет.Соединение ODBC должно быть установлено на компьютере, к которому вы хотите подключиться ИЗ, а не на том, к которому вы хотите подключиться.
Чтобы подключиться к файлам DBASE (и рассматривать их как базу данных), вы будетенеобходимо
- подключить диск, чтобы вы могли получить доступ к расположению файлов ..
- Connect использовать OleDbConnection.
Это также имеет дело спроблема у вас будет чтение файлов DBase из .NET.Если вы будете читать их достаточно часто, приложение начнет генерировать исключение «System.Resources.Exceeded».Единственное надежное решение, которое я нашел, - это убить приложение и перезапустить его, что делается в коде с именем FixMyself.(Не включено, так как содержит конфиденциальные данные).Процедура FixMyself по существу запускает второй exe, который убивает этот exe, а затем перезапускает его.
Пример кода ниже скопирован из производственного кода и должен дать вам толчок в правильном направлении.он отображает диск, подключается и читает.
Это некрасиво, но работает.Это также только частично, так как вызывает несколько функций, не включенных здесь.Но опять же, этого должно быть достаточно, чтобы вы пошли.
Public Function GetRegisterConnectionString(ByVal PathToFolder As String)
Return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PathToFolder & ";Extended Properties=dBASE IV;User ID=Admin;Password="
End Function
Public Sub ReadMyDbaseFile(ByVal DriveLetter As String, ByVal IPAddress As String)
Dim DpalmPath As String = "\\" & IPAddress & "\c$\Dpalm"
Dim cn As New System.Data.OleDb.OleDbConnection("")
cn.ConnectionString = Me.GetRegisterConnectionString(DpalmPath)
If ds.Tables.Contains("CurrentPrices") Then
ds.Tables.Remove("CurrentPrices")
End If
Dim POSAdapter As New System.Data.OleDb.OleDbDataAdapter("select * From MyDbaseFile WHERE SomeField > 0 AND ACTIVE = -1", cn)
Try
POSAdapter.Fill(ds, "CurrentPrices")
Catch ex As Exception
If InStr(ex.ToString().ToLower(), "system resource exceeded") Then
WriteToLog("System Resource Exceeded Error was thrown on register " & DriveLetter & ", IP " & IPAddress & ".")
Me.FixMyself()
Else
Throw New Exception(ex.ToString())
End If
End Try
ds.Tables("CurrentPrices").Columns.Add("LastModified", GetType(Date))
POSAdapter.Dispose()
POSAdapter = Nothing
cn.Dispose()
cn = Nothing
ds.AcceptChanges()
GC.Collect()
End Sub