Script läuft unter x64 nicht

28/12/2008 - 21:11 von Stefan Brand | Report spam
Hallo,

ich habe mir folgende Script geschrieben und in einer Access-Datenbank
bestimmte Datensàtze zu löschen:

Sub Testprogramm()
Dim objDB As New OleDb.OleDbConnection
Dim RecsAffected As Integer
Dim Cmd As New OleDb.OleDbCommand
Dim strAccessDatei = "C:\Accessdatenbank.mdb"
Dim txtUebergabeCN = "AktRechner"

'Try
objDB.ConnectionString = "Data Source= " & strAccessDatei & "; " &
"Provider = Microsoft.Jet.OLEDB.4.0;"
objDB.Open()

Dim strSQL As String = "DELETE [T-Softwareueberblick].Computername,
[T-Softwareueberblick].Software FROM [T-Softwareueberblick] WHERE
((([T-Softwareueberblick].Computername)='" & txtUebergabeCN & "'))"

With Cmd
.Connection = objDB
.CommandText = strSQL
.CommandType = CommandType.Text
RecsAffected = .ExecuteNonQuery
End With
objDB.Close()
'Catch ex As Exception

'End Try
objDB.Close()
End Sub

Mein Problem ist, dass das Script auf einem x86-WinXP-SP2-Rechner problemlos
làuft aber unter keinem x64-WinXP-Rechner.

Bei der Schrittverfolgung hàngt sich unter VB2005 das Script am Befehl
"objDB.Open()" auf. Mein Problem ist, dass ich auch keine Fehlermeldung
bekommen. Da auf dem Rechner auch Access installiert ist, glaube ich nicht,
dass es an der Datenbank liegt.

Wer kann helfen?
 

Lesen sie die antworten

#1 Thorsten Doerfler
28/12/2008 - 21:42 | Warnen spam
Stefan Brand schrieb:
ich habe mir folgende Script geschrieben und in einer Access-Datenbank
bestimmte Datensàtze zu löschen:

Sub Testprogramm()
Dim objDB As New OleDb.OleDbConnection
Dim RecsAffected As Integer
Dim Cmd As New OleDb.OleDbCommand
Dim strAccessDatei = "C:\Accessdatenbank.mdb"
Dim txtUebergabeCN = "AktRechner"

'Try
objDB.ConnectionString = "Data Source= " & strAccessDatei & "; " &
"Provider = Microsoft.Jet.OLEDB.4.0;"
objDB.Open()

Dim strSQL As String = "DELETE [T-Softwareueberblick].Computername,
[T-Softwareueberblick].Software FROM [T-Softwareueberblick] WHERE
((([T-Softwareueberblick].Computername)='" & txtUebergabeCN & "'))"

With Cmd
.Connection = objDB
.CommandText = strSQL
.CommandType = CommandType.Text
RecsAffected = .ExecuteNonQuery
End With
objDB.Close()
'Catch ex As Exception

'End Try
objDB.Close()
End Sub

Mein Problem ist, dass das Script auf einem x86-WinXP-SP2-Rechner problemlos
làuft aber unter keinem x64-WinXP-Rechner.

Bei der Schrittverfolgung hàngt sich unter VB2005 das Script am Befehl
"objDB.Open()" auf. Mein Problem ist, dass ich auch keine Fehlermeldung
bekommen. Da auf dem Rechner auch Access installiert ist, glaube ich nicht,
dass es an der Datenbank liegt.



Deine Bezeichnung "Script" ist irreführend, da man hier meinen könnte,
Du hàttest eine Lösung in VBScript entwickelt. Du hast aber wohl eine
Anwendung/Klassenbibliothek mit VB2005 erstellt und den Quellcode
kompiliert. Wenn Du das mit den Standardeinstellungen gemacht hast, wird
ein Assembly erzeugt, das unter Win32 in 32bit ausgeführt wird und
unter Win64 in 64bit. Die ADO.NET OleDB Provider für Access liegen
jedoch nur für 32bit vor. 32bit DLLs können nicht in einen 64bit Prozess
gelinkt werden, daher musst Du in den Projekteigenschaften die
Zielplattform beim Compilieren auf x86 => 32bit festlegen.

Thorsten Dörfler
Microsoft MVP Visual Basic

vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Ähnliche fragen