Ärger mit ADO-Connection-String
-
Hallo zusammen,
ich habe eine Funktion welche eine bestehende Datenbank öffnen soll. Dabei sollen Datenbanken mit Passwort als auch ohne geöffnet werden können. Verwendet wird dazu ein eine TADOConnection. Der ConnectionString wird wie folgt definiert:
if((Passwort.Trim()=="")||(Passwort==NULL)) //Falls kein PW übergeben wird sDataSource = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Pfad + ";JetOLEDB:Engine Type=4"; else sDataSource = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Pfad + ";Jet OLEDB:Engine Type=4;User Id=Admin;Database Passwort="+Passwort;
Rufe ich die Funktion ohne Passwort auf klappt alles ohne Probleme. Will ich eine DB mit Passwort öffnen und übergebe jenes an die Funktion kommt die Fehlermeldung :
"Installierbares ISAM nicht gefunden"
Ich habe schon endlos gegoogelt da ich das Problem im Connection-String vermute. Ich wüsste aber nicht wo... Hat jemand eine Idee?
-
Sorry, ich habe gerade festgestellt, dass ich die Frage versehentlich wohl ins falsche Forum gestellt habe. Ich bitte die Moderatoren darum die Frage ins VCL-Forum zu schieben. Danke
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum VCL (C++ Builder) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hallo, woher hast du denn den Connectionstring? Schau mal auf http://www.connectionstrings.com bzw. direkt unter http://www.connectionstrings.com/access
Statt "Database Passwort=" sollte es wohl "Password=" heißen...
-
Wenn ich es mit "Passwort=" probiere kommt die selbe Fehlermeldung. Hatte noch nie jemand so ein Problem?
-
passwort
passwordWer findet den Unterschied?
-
Ich und sorry. Das Problem hat sich aber immer noch nicht erledigt. Nur die Fehlermeldung hat sich geändert :
Jetzt meldet er mir :
"Die Informationsdatei für die Arbeitsgruppe fehlt oder ist exklusiv von einem anderen Benutzer geöffnet"Wieso benötigt eine DB mit Passwort eine Informationsdatei ? Und warum legt die Access 2003 dann nicht gleich an?
-
vielleicht hilft dir dieser Link:
http://www.vb-magazin.de/forums/forums/p/3813/14607.aspx(das war übrigens der dritte Treffer von Google bei der Suche nach der Fehlermeldung und Access 2003)
-
Heureka es hat funktioniert! Hatte zwar die Seite schon gesehen (Morris Szyslak hatte ja darauf hingewiesen, dass die Seite schnell gegoogelt ist), mir war aber ein Punkt nicht aufgefallen. Der richtige Connection-String lautet :
sDataSource = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Pfad + ";Jet OLEDB:Database Password="+Passwort;
Ich hatte den Code zwar schon ausprobiert aber habe das fehlende Semikolon zwischen "...Database" und "...Password" für einen Tipfehler des Autors gehalten und das Semikolon entsprechend ergänzt. Warum da kein Semikolon hingehört kann ich mir zwar nicht erklären aber mein Problem ist gelöst.
Vielen Dank euch allen...