Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Inhalte einer Datenbank in Combobox anzeigen lassen (https://www.delphipraxis.net/103207-inhalte-einer-datenbank-combobox-anzeigen-lassen.html)

f4k3 12. Nov 2007 13:10

Datenbank: Paradox • Version: 7 • Zugriff über: TTable, Datasource

Inhalte einer Datenbank in Combobox anzeigen lassen
 
Seid gegrüßt liebe DP'ler,

hab mal wieder ne schlaue frage ;)

Ich hab ne "Anmelde-Funktion" beim Start meines Programmes. Also wie bereits bekannt, ich geb mein Benutzernamen ein, danach mein kennwort und lasse überprüfen ob der Login korrekt ist ... alles weit so gut ... funktioniert auch gut ...

nun möchte ich aber ALLE Benuternamen (da es in dem Programm nicht viele Benutzer geben wird) in einer DBCombobox anzeigen lassen ...
in der DBCombobox zeigt er mir aber nur den Datensatz an auf den gerade gezeigt wird ... die restlichen Daten werden in der DBCombobox nicht mit angezeigt ...

habt ihr ne Idee wie ich das realisieren könnte? evtl. mit ner schleife? die datensätze durchlaufen und die strings jeweils unter "Items" in der DBCombobox speichern?
gebt mir mal Ratschläge ;)

Ich danke euch ... euer f4k3

mkinzler 12. Nov 2007 13:28

Re: Inhalte einer Datenbank in Combobox anzeigen lassen
 
TDBLookupComboBox

shmia 12. Nov 2007 13:28

Re: Inhalte einer Datenbank in Combobox anzeigen lassen
 
Zitat:

Zitat von f4k3
evtl. mit ner schleife? die datensätze durchlaufen und die strings jeweils unter "Items" in der DBCombobox speichern?

Ja, genau so!!
Delphi-Quellcode:
procedure DatasetFieldToStrings(ds:TDataSet; const fn:string; s:TStrings);
var
   f: TField;
begin
   f := ds.FieldByName(fn);
     
   while not ds.Eof do
   begin
      s.Add(Trim(f.AsString));
      ds.Next;
   end;
end;

// Aufruf
DatasetFieldToStrings(TableUsers, 'Username', CboUsers.Items);
Übrigens: professionelle Programme zeigen die vorhanden User nicht an, da dies einem
Hacker einen Vorteil verschaffen würde.
Bei Eingabe eines falschen Passwort kommt nicht die Meldung "Passwort falsch" sondern
"Username bzw. Passwort falsch oder User wurde gesperrt".
Somit hat ein Hacker keinen Anhaltspunkt, wo er weiter bohren muss.

Sinnvoll wäre aber den User der letzten erfolgreichen Anmeldung vorzuschlagen.

SMALLID 12. Nov 2007 13:29

Re: Inhalte einer Datenbank in Combobox anzeigen lassen
 
Dafür könnte man eine DBLookupCombo misbrauchen. LookupDataSource und LookupField geben an, aus welchem Feld welcher Tabelle was aufgelistet werden soll. Normalerweise setzt man dann noch eine Eigenschaft für ein Feld, in das der Wert geschrieben wird, das brauchst du aber in dem Fall nicht.

f4k3 12. Nov 2007 13:53

Re: Inhalte einer Datenbank in Combobox anzeigen lassen
 
mhm ... ja des mit der LoockUpCBB wär halt schön gewesen weil ich im Login-Bereich mein Benutzerbild anzeigen lassen könnte ...
aber im dienste der Sicherheit werd ichs dann evtl. doch mit nem normalen edit-feld machen ;)

Danke für eure Tipps ;)

Euer f4k3

stifflersmom 12. Nov 2007 14:18

Re: Inhalte einer Datenbank in Combobox anzeigen lassen
 
Für die Bequemlichkeit Deines Users könntest Du ja den Benutzernamen aus Deinem Editfeld
lokal speichern Ini, Registry...
und dann beim nächsten Programmstart wieder in das editfeld reinschreiben.
Ok, was die Sicherheit angeht ist das eine Schwachstelle,
allerdings macht windows das auch so...

Moin


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:05 Uhr.

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-2025 by Thomas Breitkreuz