Entwickler-Ecke
Datenbanken - DB LoginPrompt vermeiden?
D. Annies - Sa 04.12.10 09:49
Titel: DB LoginPrompt vermeiden?
Hi, Delpher,
mit dem folgenden Code lese ich mehrere Tabellen ein:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TBuchMain.lade_Tabelle(DBTname: TTable; tabname, dbtreiber: String); begin DBTname.active := false; DBTname.TableName := tabname; DBTname.DatabaseName := dbtreiber; DBTname.Database.LoginPrompt := false; DBTname.Active := true; CoBoxAdd(extractfilename(DBTname.TableName)); end; |
Leider bewirkt die ??-Zeile nichts, ich kann sie auch weglassen.
Aber wie vermeide ich denn den Login-Dialog, den ich sowieso nur mit RETN bestätige?
Gruß, Detlef
Gerd Kayser - Sa 04.12.10 13:58
D. Annies hat folgendes geschrieben : |
Aber wie vermeide ich denn den Login-Dialog, den ich sowieso nur mit RETN bestätige? |
Schau Dir doch mal den Anmeldedialog, den Du nur mit Return bestätigst, einmal genauer an. Da steht doch sicherlich ein Username und ein Passwort. Und wo sind diese Angaben in Deinem Quelltext?
Außerdem wäre es hilfreich, die Datenbank und die verwendeten Komponenten anzugeben.
Hier ein Beispiel mit Interbase und IBDatabase (Login-Prompt im Objektinspektor auf false gesetzt):
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| if fFehler = - 1 then try with Datenmodul.IBDatabase do begin Connected := false; Params.Clear; Params.Add('user_name=SYSDBA'); Params.Add('password=masterkey'); DatabaseName := fDateiname; Connected := true; end; except on E: Exception do fFehler := 4; end; |
Bei Interbase ist die Syntax etwas anders, wenn die Datenbank noch erzeugt werden muß:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| if fFehler = - 1 then with Datenmodul.IBDatabase do begin DatabaseName := fDateiname; Params.Clear; Params.Add('user "SYSDBA"'); Params.Add('password "masterkey"'); Params.Add('page_size 8192'); try CreateDatabase; except on E: Exception do fFehler := 2; end; end; |
Wegen der Syntax hilft Dir sicherlich ein Blick in Deine Datenbank-Dokumentation weiter.
D. Annies - So 05.12.10 20:31
Hi, Gerd,
kann es sein, dass ich die "unnötigen" Eingaben schon bei der Datenbankdeklaration über
DBExplore.exe machen kann?
Mal sehen, Gruß, Detlef
D. Annies - Mo 06.12.10 10:22
Hi,
bei dbexplore kann ich keinen User-Namen eingeben.
Ich komme nicht weiter.
Gr. Detlef
Gerd Kayser - Di 07.12.10 18:42
D. Annies hat folgendes geschrieben : |
bei dbexplore kann ich keinen User-Namen eingeben. |
Von dbexplore hatte ich aber nichts geschrieben. Wenn Dein Programm eine Verbindung zur Datenbank aufbauen soll, die Datenbank aber ein Login verlangt, dann mußt Du das in Deinem Programm verdrahten. Wie das z. B. mit Interbase geht, hatte ich bereits geschrieben. Leider hast Du bis jetzt immer noch nicht gesagt, welche Komponenten und welche Datenbank Du benutzt.
Allgemein: Wenn "DBTname.Database" ein "LoginPrompt" kennt, dann sollte es da auch Params geben. Dort kannst Du Deine Login-Daten hinterlegen (siehe mein Beispiel). Ob es dort Username, User_Name, User, User_id, UserID, UID oder sonstwie heißt, mußt Du in Deiner Datenbankdokumentation nachlesen.
Bei ADO könnte man die Zugangsdaten auch im ConnectionString angeben. Aber das hängt davon ab, ob Du auch ADO benutzt.
Noch eine kleine Anmerkung: Das Verdrahten der Zugangsdaten im Programm stellt auch ein gewisses Sicherheitsrisiko dar.
Zitat: |
Ich komme nicht weiter. |
Programmieren ist mehr als nur Codezeilen einzutippen. Dazu gehört auch das Recherchieren und ausgiebiges Testen.
D. Annies - Mi 08.12.10 14:04
Hallo, Gerd, es ging mit hier um's Codieren, nicht um's Programmieren,
falls du den Unterschied kennst.
Jedenfalls erkennt wohl jeder Leser, dass das hier keine einfache Frage
ist, sonst wäre ja die Resonanz höher.
Ich schließe dann mal.
Tintenblut - Mi 08.12.10 17:50
Das heißt, du hast eine Lösung gefunden?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!