Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Problem mit Connection String (https://www.delphipraxis.net/101177-problem-mit-connection-string.html)

Jack23 9. Okt 2007 15:17

Datenbank: Access • Version: 2003 • Zugriff über: ADO

Problem mit Connection String
 
Hallo,

ich habe ein kleines Problem mit einem Connection String.

Wie bekomme ich folgendes zum laufen?

Delphi-Quellcode:
ADOConnection1.Provider := 'Microsoft.Jet.OLEDB.4.0';
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='ExtractFilePath(ParamStr(0))+'abc.mdb'
ADOConnection1.Connected := TRUE;
ADOConnection1.Open;
edit:

Ok eigentlich läuft nur diese Zeile nicht:

Delphi-Quellcode:
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='ExtractFilePath(ParamStr(0))+'abc.mdb'

marabu 9. Okt 2007 15:31

Re: Problem mit Connection String
 
Hi,

"laufen" ist vielleicht das falsche Wort - so dürfte das nicht mal übersetzt werden. Vor dem Aufruf der Funktion ExtractFilePath() fehlt ein Plus-Zeichen, damit die Strings verkettet werden.

Grüße vom marabu

Jack23 9. Okt 2007 15:41

Re: Problem mit Connection String
 
Das Plus war es. Danke. Wenn ich das Programm starte bekomme ich aber immer die Meldung:

Fehler bei der Authentifizierung.

Woran kann das liegen?

Ich habe ein DatenModul da ist folgender Code drin.

Delphi-Quellcode:
.....

function Connection: Boolean;

.....

function TDataModul.Connection: Boolean;
begin
ADOConnection1.Provider := 'Microsoft.Jet.OLEDB.4.0';
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+ExtractFilePath(ParamStr(0))+'abc.mdb';
AdOConnection1.Connected := TRUE;
AdOConnection1.Open;
end;
Und dann habe ich ein ein normales TForm wo oben unter uses das DatenModul eingebunden ist.

Was fehlt denn da noch?

sirius 9. Okt 2007 15:44

Re: Problem mit Connection String
 
Ich erinnere mich dunkel, dass eine der letzten beiden Zeilen zu viel sein könnte.

marabu 9. Okt 2007 15:48

Re: Problem mit Connection String
 
Lies dir zum Thema Authentifizierung mal diesen Thread durch: anmeldung an access mit ado datenverknuefungseigenschaften

Jack23 9. Okt 2007 15:59

Re: Problem mit Connection String
 
Gelesen. Ich habe aber weder Benutzernamen noch ein Passwort.

Wie soll mir das weiterhelfen?

Oder meinst du ich User ID=Admin weglassen? habe ich auch schon Probiert. Leider kein erfolg.

marabu 9. Okt 2007 16:07

Re: Problem mit Connection String
 
Zitat:

Zitat von marabu
... einen Benutzer gibst du nur dann an, wenn du eine Arbeitsgruppendatei erzeugt hast ...

Natürlich sollst du "USER ID=Admin" weglassen - oder existiert eine Arbeitsgruppendatei?

Wenn du das schon probiert hast und es kommt immernoch ein Authentifizierungsfehler, dann scheint eine solche Datei zu existieren. Du benötigst dann die entsprechenden Credentials. In dem anderen Thread ist auch beschrieben, wie du die eingeben kannst.

Kedariodakon 9. Okt 2007 16:12

Re: Problem mit Connection String
 
Er meint sicher das da:
Zitat:

Zitat von marabu
Einen Benutzer gibst du nur dann an, wenn du eine Arbeitsgruppendatei erzeugt hast. Ansonsten gibst du beim Verbindungsassistenten keinen Benutzer und kein Kennwort an. Auf der letzten Seite des Assistenten kannst du dann den Parameter "Jet OLEDB: Database Password" setzen.


Bei sowas hilft auch einfach eine Datenverknüpfungsdatei erzeugen:
Neue Datei erstellen, Datei umbenenen mit der Extension "udl".

Diese Datei dann einfach Doppelklicken und alles einstellen, wenn das fertig ist, steht der Connection-String dann in der Datei! (Wenn das Passwort gespeichert werden soll, den Hacken Speichern des Kennwortes zulassen aktivieren)

Für den Source sind da auch diese Funktionen interessant:
Delphi-Quellcode:
unit ADODB;

{ [...] }

{ Global Functions }
function PromptDataSource(ParentHandle: THandle; InitialString: WideString): WideString;
function PromptDataLinkFile(ParentHandle: THandle; InitialFile: WideString): WideString;

{ [...] }
Da kannst du zur laufzeit den Assistenten aufrufen und bekommst deinen Connection String zurück

Bye Christian

Jack23 9. Okt 2007 16:13

Re: Problem mit Connection String
 
Nein der Name existiert.

Aber warum geht es dann nicht?

Ich möchte auch keinen Assistenten mehr. Ich möchte das , dass alles automaisch beim Start des Programms eingestellt wird.

Es geht ja eigentlich nur darum das der DB Pfad immer der gleiche ist wie der Pfad der exe.

Kedariodakon 9. Okt 2007 16:20

Re: Problem mit Connection String
 
Zitat:

Zitat von Jack23
Ich möchte auch keinen Assistenten mehr. Ich möchte das , dass alles automaisch beim Start des Programms eingestellt wird.

Der Assistent erstellt dir aber genau das was du brauchst, genau das schreibst du in den Connection String... (War ja nur als hilfe gedacht, wenn sich der Assistent verbinden kann. Dann passt was bei dir nicht!

Du brauchst dann ja nur noch den Dateiteil aus dem Connection-String tauschen. fertig...

Der Connection-String der der Assistent erzeugt ist vollständig, der im der ADOConnection ist schon zerlegt (Provider, Username, Passwort & Parameter, also nicht mehr vollständig wie er sein müste!)

bye Christian


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 Uhr.
Seite 1 von 2  1 2      

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