(BDE) TDatabase und Benutzername + Passwort?
-
Habe mal eine Frage:
Ich möchte in meinem Programm zu einer Postgres-Datenbank verbinden.
Bisher habe ich es immer so gemacht:
Ich habe mir eine ODBC Quelle eingerichtet, die komplett mit allem eingestellt.
Dann eine TDatabase Komponente erstellt und dieser dann die ODBC-Quelle unter AliasName zugewiesen.Jetzt habe ich aber das Problem, dass in der ODBC-Quelle ja schon ein fester Benutzername eingetragen ist.
Das soll aber nicht der Fall sein.
D.h. der Benutzer soll bei Programmstart einen Anmeldedialog bekommen in dem er seinen Benutzernamen + Passwort angibt.
Dieser soll dann auf die ODBC-Quelle gemützt werden und die Verbindung soll hergestellt werden.Aber es gibt ja gar kein Feld wo ich sowas eintragen könnte.
Wie kann ich also einer TDatabase-Verbindung einen Benutzernamen + Passwort mitgeben?Danke im Voraus
cu Patrick

-
Hallo
siehe TDatabase::Params
Mit Params können Sie die Datenbankverbindungsparameter überprüfen oder festlegen. Dazu gehören der Pfadname, die Größe des Struktur-Cache, der Sprachtreiber, der Benutzername und das Kennwort. Die Parameter der Eigenschaft Params sind vom BDE-Alias und dem Treiber für die Datenbank-Komponente abhängig.
bis bald
akari
-
akari schrieb:
Hallo
siehe TDatabase::Params
Mit Params können Sie die Datenbankverbindungsparameter überprüfen oder festlegen. Dazu gehören der Pfadname, die Größe des Struktur-Cache, der Sprachtreiber, der Benutzername und das Kennwort. Die Parameter der Eigenschaft Params sind vom BDE-Alias und dem Treiber für die Datenbank-Komponente abhängig.
bis bald
akariHabe ich schon probiert, das klappt aber nicht.
Wenn ich z.B. die Parameter
username=xxx
password=xxxsetze das juckt ihn überhaupt nicht.
-
TheDatabase->LoginPrompt=false ;
-
Also irgendwie leitet er die Parameter nicht an den ODBC-Treiber weiter.
Wenn ich die Felder manuell im ODBC-Treiber fülle -> Kein Problem.Fülle ich sie nicht, fliegt er auf die Schnauze?
Woran kann das liegen?
LoginPrompt true oder false spielt keine Rolle

-
Ich habe das gleiche Problem bei unserer informix-DB gehabt. Wenn ich im ODBC Treiber keinen Benutzer inkl. Passwort angebe, kann ich nicht verbinden. Bis BCB 5 wurde dann automatisch Name und Passwort abgefragt, seit dem BCB 6 (meistens) nicht mehr.
Manchmal reicht es, vor der Kompilierung bei der TDataBase-Instanz Connected auf false zu setzen, manchmal hilft aber auch das nicht, dann:
Stell LoginPrompt auf false (MUSS!) und fülle USER NAME (Leerzeichen beachten, geht bei mir ohne das Leerzeichen nicht) und PASSWORD in den Params.
-
USER NAME nimmt er mittlerweile.
PASSWORD nimmt er komischerweise immer noch nicht.Ich probier noch mal rum.
-
Ok, jetzt klappts.
Warum jetzt und vorher nicht weiß ich zwar nicht so genau, aber nun gut.
Werde ich schon mit der Zeit herausfinden.Aktueller Stand:
- DB, Server + Port sind in der ODBC Quelle eingetragen
- LoginPrompt = false
- "USER NAME" + "PASSWORD" über Params gesetzt
------------------------------------------------
-> funztDanke für Eure Hilfe
