Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Ado Zugriff auf Access auf Win7 (https://www.delphipraxis.net/170826-ado-zugriff-auf-access-auf-win7.html)

ouzo 4. Okt 2012 16:45

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 (http://www.delphipraxis.net/149146-d...0-und-ado.html)

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 ?

p80286 4. Okt 2012 16:58

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:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\daten\db1.mdb;Persist Security Info=False
Gruß
K-H

ouzo 4. Okt 2012 17:02

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.

shmia 4. Okt 2012 18:33

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 Jet-Engine zu benützen.

So sieht deine Treiberreihenfolge aus:
Code:
ADO -> ODBC Provider -> ODBC Treiber für Access-> Jet Engine -> *.mdb
So sähe es mit dem richtigen Treiber aus:
Code:
ADO -> Jet 4.0 OLE DB Provider -> Jet Engine -> *.mdb

Der ConnectionString sieht normalerweise so aus:
Code:
[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
Microsoft möchte die Jet Engine eigentlich einstampfen und nicht mehr auf Windows 7/8 weiterführen.
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:
http://www.microsoft.com/de-de/downl....aspx?id=13255

ouzo 5. Okt 2012 08:00

AW: Ado Zugriff auf Access auf Win7
 
wenn ich diesen verwende:

Code:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Test\TestDB.mdb;Persist Security Info=False
bekomme ich ebenfalls unter XP schon die Fehlermeldung:

Der schreibgeschützte Eigenschaftswert wurde nicht festgelegt.

sobald ich die Connection öffne.

Unter Win7 habe ich den genannten Treiber installiert, gleiche Fehlermeldung.

Jumpy 5. Okt 2012 08:05

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?

shmia 5. Okt 2012 09:42

AW: Ado Zugriff auf Access auf Win7
 
Zitat:

Zitat von ouzo (Beitrag 1185828)
sobald ich die Connection öffne.

Zum Testen einer Connection kann man eine neue Textdatei auf dem Desktop erzeugen und nach Test.UDL umbenennen.
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.

p80286 5. Okt 2012 10:47

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:45 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