Autor Beitrag
D. Annies
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Sa 04.12.10 09:49 
Hi, Delpher,

mit dem folgenden Code lese ich mehrere Tabellen ein:

ausblenden 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

_________________
ut vires desint, tamen est laudanda voluntas
Gerd Kayser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Sa 04.12.10 13:58 
user profile iconD. Annies hat folgendes geschrieben Zum zitierten Posting springen:
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):
ausblenden 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ß:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: 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

_________________
ut vires desint, tamen est laudanda voluntas
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Mo 06.12.10 10:22 
Hi,
bei dbexplore kann ich keinen User-Namen eingeben.
Ich komme nicht weiter.
Gr. Detlef

_________________
ut vires desint, tamen est laudanda voluntas
Gerd Kayser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Di 07.12.10 18:42 
user profile iconD. Annies hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: 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.

_________________
ut vires desint, tamen est laudanda voluntas
Tintenblut
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 39
Erhaltene Danke: 2



BeitragVerfasst: Mi 08.12.10 17:50 
Das heißt, du hast eine Lösung gefunden?