我對編程非常陌生,所以我需要一些額外的幫助來弄清楚這一點。我有一個VB .NET應用程序,它爲64位應用程序提供了一個加載項。我試圖完成的任務是打開到32位MS Access數據庫的連接並從表中查找數據。在這種情況下,64位應用程序無法與32位數據庫連接。你可以從我的解釋中得知我幾乎不知道我在說什麼。在64位VB.Net應用程序中連接到32位MS Access DB
我對這個主題的所有研究都得出了相同的結論,我需要使用進程間通信,但不解釋這是如何完成的以及我需要做什麼來實現此目的。
這裏是在VB .NET應用程序我的連接設置:
Public Class MSDatabase
Dim provider As String
Dim dataFile As String
Dim connString As String
Public myConnection As OleDbConnection = New OleDbConnection
Public dr As OleDbDataReader
Public Sub LoadDatabase()
provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
dataFile = "\\server3\databases\Quotes.accdb"
connString = provider & dataFile
myConnection.ConnectionString = connString
End Sub
Public Function LookUpPart(D As Double, E As Double, F As Double, G As Double, Grade As String) As Boolean
myConnection.Open()
Dim str As String
str = "SELECT PartNumber, D, E, F, G, Grade FROM Parts"
Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
dr = cmd.ExecuteReader
While dr.Read()
If D = dr("D") And E = dr("E") And F = dr("F") And G = dr("G") And Grade = dr("Grade") Then
Return True
End If
End While
myConnection.Close()
Return False
End Function
End Class
這當我嘗試打開與該錯誤消息,指出提供商Microsoft.ACE.OLEDB.12.0未註冊的連接失敗在本地機器上。
我想知道的是如何使用進程間通信將它設置爲從我的64位應用程序調用的32位應用程序。
任何幫助,非常感謝!
有沒有這樣的事情作爲一個32位的訪問表。桌子就是。它是32位或64位的OLE DB提供程序。爲什麼不簡單地編譯應用程序來定位x86平臺並在32位進程中運行? IPC獲取Access數據聽起來相當愚蠢。 – jmcilhinney
嗯,仔細閱讀這個問題,我現在看到了這個問題。我可以假設安裝64位ACE是不可能的嗎? – jmcilhinney
對不起,我應該採取不同的措辭。我必須使用32位OLE DB提供程序,因爲正在使用的MS Access應用程序是32位。我無法以x86爲目標,因爲這樣的話,Add-In的dll必須註冊爲32位,並且不會爲其編寫的64位程序運行。比你的回覆!這很快! – Steve771