Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Access-Zugriff Verbindungsstring (https://www.delphipraxis.net/209716-access-zugriff-verbindungsstring.html)

Blitzschutz1 13. Jan 2022 13:15

Datenbank: Access 2016 • Version: alle • Zugriff über: ADO

Access-Zugriff Verbindungsstring
 
Liste der Anhänge anzeigen (Anzahl: 2)
Gesundes, coronamaßnahmenarmes 2022 an alle!

Frage:
Ich versuche, über den Aufruf des Dialogs einen Verbindungsstring zu generieren. Leider erscheinen zwei unterschiedliche Dialoginhalte, wenn ich den Dialog vom der Delphi-Anwendund aufrufe oder über den Explorer (leere Textdatei erstellen, Extension zu .udl ändern, öffnen. Im Programm ist der Ablauf eigentlich auch so, es wird eine Textdatei erstellt, deren Extension udl ist und diese wird mittels ShellExecuteAndWait ("open") (Quelle dazu: https://stackoverflow.com/questions/...time-in-delphi) geöffnet. Leider sind dort aber nicht alle Access-Treiber aufgelistet (siehe Bilder, links Programm, rechts Explorer).
Kann mir hier jemand Hinweise dazu geben, warum das so ist?

Der schöne Günther 13. Jan 2022 14:44

AW: Access-Zugriff Verbindungsstring
 
Ich kenne mich damit nicht aus, aber ich würde denken dass die Delphi-IDE noch eine 32-Bit-Anwendung ist und deshalb nur Zugriff auf 32-Bit-Treiber hat.

HolgerX 13. Jan 2022 14:57

AW: Access-Zugriff Verbindungsstring
 
Hmm...

Hast Du auf deinem PC auch ACCESS installiert?

Normalerweise müsste dann auch ein oder zwei 'Microsoft.ACE.OLEDB.xxx' Treiber installiert sein.
Diesen Treiber müsstes Du optional auf PCs ohne installiertem ACCESS separat installierten (Download bei MS).

Hier gillt dann für das .xxx

Microsoft.ACE.OLEDB.12.0 Access 2007 32Bit/Access 2010 32Bit
Microsoft.ACE.OLEDB.14.0 Access 2010 64Bit
Microsoft.ACE.OLEDB.15.0 Access 2013 32Bit/64Bit ?
Microsoft.ACE.OLEDB.16.0 Access 2016 32Bit/64Bit ?

Kann sein, dass ein neueres ACCESS auch eine neuere Version mitbringt.

Optional, bei .mdb, würde auch noch der bei aktuelle Windows immer vorhandene 'Microsoft.Jet.OLEDB.4.0' Treiber gehen...

Also Dir beim Programmstart die installierten ADOProvider holen und nach 'Microsoft.ACE.OLEDB' suchen, wenn vorhandne dann diesen in deinen Connectionstring packen. (Bei D6 mit ADODB.GetProviderNames)

Ah.. Noch ein Zusatz:
Bedenke, dass es Office als 64Bit und 32Bit gibt!
Somit musst Du den passenden Treiber zu deiner App installieren...

Blitzschutz1 13. Jan 2022 18:21

AW: Access-Zugriff Verbindungsstring
 
Danke Euch!

Ja, 32- und 64-Bit ist wohl das Stichwort. Die Microsoft.ACE.OLEDB.XX.0 Access XXXX - Treiber werden bei der Explorer-Variante (siehe Bild 2) ja aufgelistet. Dann sind sie wohl auch installiert (zumindest auf meinem Rechner). Da kommt gleich eine neue Frage auf. Aber neue Frage = neues Thema.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz