![]() |
Datenbank: Access • Version: 2003 • Zugriff über: Ado Delphi 7
Ado Zugriff auf Access auf Win7
Mein Delphi 7 Programm greift mittels einer AdoConnection auf eine Access-Datenbank zu. Unter XP lief alles jahrelang einwandfrei. Jetzt muss die gleiche Anwendung ebenfalls unter Win7 x64 laufen.
Der ConnectionString := 'Provider=MSDASQL;Persist Security Info=False;Extended Properties="DSN=ACCESS;' + 'DBQ=' + Acessdatei + ';DriverId=281;FIL=MS Access;MaxBufferSize=2048;PageTimeout=500;UID=admi n;"'; sieht bisher so aus. Unter Win 7 bekomme ich die Fehlermeldung : [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angeben Jetzt habe ich schon einiges gelesen über die 32 und 64 Treiber und rumprobiert. Ebenfalls habe ich in meinen Code den Connectionstringbuilder eingebaut ( ![]() Damit kann ich eine Verbindung herstellen, der Test funktioniert. Wenn ich dann die Connection damit öffne bekomme ich diese Meldung: Der schreibgeschützte Eigenschaftswert wurde nicht festgelegt. Ich drehe mich im Kreis und finde keine Lösung. Was kann ich noch probieren ? |
AW: Ado Zugriff auf Access auf Win7
ADO und ODBC?
hast Du es mal mit den originären Ado-Treiber versucht? für XP:
Code:
Gruß
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\daten\db1.mdb;Persist Security Info=False
K-H |
AW: Ado Zugriff auf Access auf Win7
Damit
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\daten\db1.mdb;Persist Security Info=False habe ich es auch schon probiert, Fehlermeldung : Der schreibgeschützte Eigenschaftswert wurde nicht festgelegt. |
AW: Ado Zugriff auf Access auf Win7
Also zunächst mal hast du jahrelang den falschen Treiber benützt; nämlich einen ODBC-Treiber anstatt gleich den Treiber für die
![]() So sieht deine Treiberreihenfolge aus:
Code:
So sähe es mit dem richtigen Treiber aus:
ADO -> ODBC Provider -> ODBC Treiber für Access-> Jet Engine -> *.mdb
Code:
ADO -> Jet 4.0 OLE DB Provider -> Jet Engine -> *.mdb
Der ConnectionString sieht normalerweise so aus:
Code:
Microsoft möchte die Jet Engine eigentlich einstampfen und nicht mehr auf Windows 7/8 weiterführen.
[oledb]
; Everything after this line is an OLE DB initstring Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Test\TestDB.mdb;Persist Security Info=False Wenn mich nicht alles täuscht ist die Jet Engine defaultmässig nicht mehr unter Win 7 an Bord. Trotzdem kann man sie immer noch installieren: ![]() |
AW: Ado Zugriff auf Access auf Win7
wenn ich diesen verwende:
Code:
bekomme ich ebenfalls unter XP schon die Fehlermeldung:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Test\TestDB.mdb;Persist Security Info=False
Der schreibgeschützte Eigenschaftswert wurde nicht festgelegt. sobald ich die Connection öffne. Unter Win7 habe ich den genannten Treiber installiert, gleiche Fehlermeldung. |
AW: Ado Zugriff auf Access auf Win7
Nur weil es bei uns gelegentlich vergessen wird. Hast du den ODBC-Treiber denn auch unter 32 bit installiert via der odbcad32.exe aus dem WOW64-Verzeichnis?
|
AW: Ado Zugriff auf Access auf Win7
Zitat:
Nach dem Doppelklick erscheint der bekannte Dialog mit dem man die Connection Parameter einstellen und mit Button "Verbindung testen" ausprobieren kann. Somit vermeidet man eventuelle Probleme von Delphi oder anderen Programmierumgebungen. Öffnet man die UDL-Datei mit dem Notepad geöffnet kann man den Connection-String kopieren. |
AW: Ado Zugriff auf Access auf Win7
mal so am Rande,
diese obskure Schreibschutz-Meldung ist ja schon mal aufgetaucht. Ich vermute eine etwas krude Übersetzung dahinter, ggf. ist der Mode-parameter gemeint, den man setzt/setzen kann wenn der Treiber für die Jet-Engin genutzt wird. Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz