Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

64-Bit Microsoft Access Database Engine 2010


3 replies to this topic

Toto

Toto
  • Full Members
  • 9 posts

Posted 18 August 2010 - 05:55

Hallo zusammen,

in einigen meiner x64-Komponenten, die durch mein x64-Basic-MSI installiert werden, benötige ich Zugriff auf eine MS Access Datenbank (MDB).
MDAC ist ja leider nur für x86 erhältlich.

Lösung A: Installation von MS Office/Access 2010 64-Bit-Edition.
Dies ist als Installations-Voraussetzung natürlich ungeeignet.

Lösung B: Microsoft Access Database Engine 2010 Redistributable mit der AccessDatabaseEngine_X64.exe
Wenn man diese AccessDatabaseEngine_X64.exe ohne Argumenet aufruft, kommt es zur Fehlermeldung, wenn schon entsprechende 32-Bit ODBC-Treiber installiert sind (z.B. durch MS Office 2010 32-Bit-Edition oder x86 AccessDatabaseEngine.exe).
Man kann die (parallele) Installation jedoch anscheinend erzwingen, in dem man AccessDatabaseEngine_X64.exe /passive aufruft.
Man kann auch das MSI-Package extrahieren mittels AccessDatabaseEngine_X64.exe /extract:path und erhält dann ein path\AceRedist.msi.

Meine Frage ist jetzt: wie integriere ich die AceRedist.msi / AccessDatabaseEngine_X64.exe (mit Argument /passive) am besten in mein eigenes x64-Basic-MSI ?

Hat das was mit dem MSDN-Hinweis in Using 64-Bit Windows Installer Packages zu tun:
QUOTE
•If a 64-bit ODBC Driver Manager is to be installed, the component that carries it should be named ODBCDriverManager64. The ODBC Driver Manager must be authored in the installer package and a component named ODBCDriverManager64 must be included. The manager will be installed if necessary.
Oder geht es hier um den ODBC-Administrator (ODBCad32.exe)?

PS: bei beiden o.g. Lösungen ist darauf zu achten, im Connection-String bzw. in SQLConfigDataSource() den Treiber als "Microsoft Access Driver (*.mdb, *.accdb)" zu benennen (nicht wie früher "Microsoft Access Driver (*.mdb)").

Best Regards / Mit freundlichen Grüßen
Andreas Marschall

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 18 August 2010 - 15:33

Ich denke, dass /passive im Wesentlichen alle modalen Dialoge unterdrückt (Benutzereigaben ebenso wie Fehlermeldungen) und nur den Fortschrittsbalken (ohne Cancel-Button) anzeigt, analog zu /qb!

Am besten erstellst du über Tools > Prerequsite Editor eine eigene Installations-Voraussetzung dafür.

Toto

Toto
  • Full Members
  • 9 posts

Posted 26 August 2010 - 19:10

Ich habe das x64 AceRedist.msi der Access Connectivity Engine (ACE) jetzt per Custom Action Typ 23 (+msidbCustomActionTypeContinue) in der Action Sequence nach InstallInitialize integriert.
Extra Parameter musste ich dabei nicht setzen, um unerwünschte User-Prompts zu unterdrücken und die Installation auch bei paralellem Vorhandensein von entsprechenden 32-Bit-Komponenten (Office bzw. Access) zu erzwingen, denn durch Platzierung in der Ausführungssequenz werden anscheinend sämtliche Dialoge dieses MSI unterdrückt!?
Als Installationsauführungsbedingung habe ich neben Not Installed noch vorher per Systemsuche getestet, ob im [CommonFiles64Folder] und bis zu zwei Unterverzeichnisebenen tiefer die ACEODBC.DLL (nicht) vorhanden ist.
Diese Datei enthält den fraglichen x64-ODBC-Treiber für den MDB-Zugriff und ist bei schon installiertem Microsoft Access Database Engine 2010 Redistributable x64 oder auch bei installiertem MS Office 2010 64-Bit dort im Unterverzeichnis \Microsoft Shared\OFFICE14\ zu finden.
Best Regards / Mit freundlichen Grüßen
Andreas Marschall

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 06 September 2010 - 20:56

Zitat aus der Doku:
QUOTE
The Custom Action Type 23 is used with concurrent installations. Concurrent installations are not recommended for the installation of applications intended for release to the public.

Also verwende lieber eine Prerequisite.