da ich in Bezug auf meine Problematik mit ODBC-Datenbankanbindung noch nix rechtes gefunden habe, erlaub ich mir, das hier mal schnell los zu werden.
Nachfolgender Code (aus größerem Programmcode extrahiert) auf 32-Bit und 64-Bit Executable kompiliert:
Code: Alles auswählen
#ODBC_ADD_DSN = 1
Procedure Verbindung(Driver.s,strAttributes.s,ODBCArt.l)
ODBCLibrary = 1
Resultat = OpenLibrary(ODBCLibrary,"ODBCCP32.DLL")
If Resultat
While Not Right(strAttributes, 2) = ";;"
strAttributes + ";"
Wend
MyMemory = AllocateMemory(Len(strAttributes) * SizeOf(character) + SizeOf(character))
PokeS(MyMemory, strAttributes, Len(strAttributes))
For L=1 To Len(strAttributes)
CompilerIf #PB_Compiler_Unicode
If PeekW(MyMemory + (L - 1) * SizeOf(character)) = Asc(";")
PokeW(MyMemory + (L - 1) * SizeOf(character), 0)
EndIf
CompilerElse
If PeekB(MyMemory + L - 1) = Asc(";")
PokeB(MyMemory + L - 1, 0)
EndIf
CompilerEndIf
Next L
Resultat = CallFunction(ODBCLibrary,"SQLConfigDataSource",0,ODBCArt,Driver,MyMemory)
FreeMemory(MyMemory)
CloseLibrary(ODBCLibrary)
If Resultat: ProcedureReturn 1: EndIf
Else
MessageRequester("Fehler!", "Folgende Datenbanktreiber konnten nicht geladen werden: " + Driver, #MB_ICONERROR)
EndIf
EndProcedure
Resultat = Verbindung("Microsoft Access Driver (*.mdb)","Server=Meister;Description=Handicap-Meister;DSN=Handicap;DBQ=" + Handicapdata$ + ";UID=Administrator;PWD=abcdef;",#ODBC_ADD_DSN)
Debug Resultat
Meiner Meinung nach kann es eigentlich lediglich wegen der ODBCCP32.DLL nicht funktionieren, die eingebunden wird. Ich glaub es gibt ja keine direkte Möglichkeit, eine 32-Bit-System-DLL direkt über eine 64-Bit Anwendung zu nutzen. Andererseits dachte ich mir, Windows (in diesem Fall Windows Vista 64-Bit Ultimate) würde dann automatisch im Verzeichnis SysWOW64 eine entsprechende 64-Bit-Variante ansprechen???
Vielleicht weiss ja jemand noch einen anderen Lösungsansatz bzw. eine bessere Möglichkeit, um das Ganze unter 64-Bit zum Laufen zu bringen?
Brennt zwar nicht auf den Nägeln, interessiert mich aber schon, da mehrere meiner Programme diese Funktion für dynamische ODBC-Anbindung mit Access-Datenbanken nutzen.
Danke für jegliche Hilfe, Bamsagla.