(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
    akari

    Habe ich schon probiert, das klappt aber nicht.
    Wenn ich z.B. die Parameter
    username=xxx
    password=xxx

    setze 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
    ------------------------------------------------
    -> funzt

    Danke für Eure Hilfe 😉


Anmelden zum Antworten