Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbankeinträge in ComboBoxen zur Anzeige bringen. (https://www.delphipraxis.net/131353-datenbankeintraege-comboboxen-zur-anzeige-bringen.html)

Jens Hartmann 23. Mär 2009 20:55

Re: Datenbankeinträge in ComboBoxen zur Anzeige bringen.
 
DataSource von LookupComboBox ist Leer. Ich nutzte ZTable von Zeos, und da habe ich doch gar kein Feld DataSource

haentschman 24. Mär 2009 18:16

Re: Datenbankeinträge in ComboBoxen zur Anzeige bringen.
 
Hallo Jens,

Zitat:

ich möchte aus meine Datenbank aus einer Spalte die 5 letzten Einträge mit einem bestimmten Wert zur Anzeige bringen.
...dann kannst du die LookupComboBox in die Tonne schieben :wink: Dann hast du komplett alle Datensätze der Tabelle in der ComboBox Auswahl.

Vorschlag:
- eine normale Standard Combobox benutzen
- die gewünschten Datensätze per Query holen
- ComboBox.Clear
- Ergebnismenge der Query durchlaufen und jeden Datensatz der ComboBox hinzufügen.

hoffe geholfen zu haben :hi:

alzaimar 24. Mär 2009 19:07

Re: Datenbankeinträge in ComboBoxen zur Anzeige bringen.
 
Zitat:

Zitat von haentschman
Zitat:

ich möchte aus meine Datenbank aus einer Spalte die 5 letzten Einträge mit einem bestimmten Wert zur Anzeige bringen.
...dann kannst du die LookupComboBox in die Tonne schieben :wink:

Ach, wurde die Filter-Eigenschaft abgeschafft? :zwinker:

Jens Hartmann 24. Mär 2009 19:18

Re: Datenbankeinträge in ComboBoxen zur Anzeige bringen.
 
Liste der Anhänge anzeigen (Anzahl: 3)
Also, ich versuche es immer noch mit der Lookup ComboBox, und habe aber immer noch den selben Fehler. Ich habe mal die Einstellung im OI in den Anhang gelegt.

Gruß Jens

haentschman 24. Mär 2009 21:04

Re: Datenbankeinträge in ComboBoxen zur Anzeige bringen.
 
Hallo alzaimar...

Zitat:

5 letzten Einträge mit einem bestimmten Wert
- ich lern gern dazu, aber obiges mit einem Filterstring des Datasets ?
- kannst du mal ein Beispiel zeigen ?

:hi:


@Jens:
- ähmmm...Stop du hast die DBLookupCombo aus der Registerkarte 3.1 erwischt. Die DBLookupComboBox ist in Datensteuerung
- die DBLookupComboBox ist geeignet, wenn man die Liste aus einer Tabelle holt und den Wert in eine andere schreiben will
- das wäre ListSource für die Liste und DataSource für das Ziel.
- wenn du nur die Daten in der Liste anzeigen möchtest und andersweitig weiterverarbeiten reicht die DBComboBox aus Datensteuerung. Dann hättest du als DataSource - DataSource1 und die Datasource wie gehabt.
- versuch dann mal die Tabelle erst zur Laufzeit Active:= True zu setzen.

Jens Hartmann 25. Mär 2009 04:32

Re: Datenbankeinträge in ComboBoxen zur Anzeige bringen.
 
Sorry, dann muss ich das mal prüfen, ich bin auf die Lookup durch den obigen Beitrag gekommen.

mkinzler hat geschrieben

Zitat:

Hier würden sich DBLookupComboboxen anbieten

RWarnecke 25. Mär 2009 04:41

Re: Datenbankeinträge in ComboBoxen zur Anzeige bringen.
 
Eine andere Varinate wäre noch, Du gehst direkt über eine Query.

So zu Beipsiel :
Delphi-Quellcode:
with TZQuery do begin
  SQL.Clear
  SQL.Text := 'Select * from tabelle where feld1=1';
  Open;
  Active := true;
  while not eof do
  begin
    Combobox1.Items.Add(FieldByName('Feld2').AsString);
  end;
  Active := false;
  Close;
end;
So fülle ich immer meine Listen oder Boxen. Ich benutze garnichtmehr die TDBxxx-Komponenten.

Jens Hartmann 25. Mär 2009 23:29

Re: Datenbankeinträge in ComboBoxen zur Anzeige bringen.
 
Zitat:

RWarnecke hat geschrieben
Delphi-Quellcode:
with TZQuery do begin
  SQL.Clear
  SQL.Text := 'Select * from tabelle where feld1=1';
  Open;
  Active := true;
  while not eof do
  begin
    Combobox1.Items.Add(FieldByName('Feld2').AsString);
  end;
  Active := false;
  Close;
end;

So habe ich es ja bis jetzt gelößt, allerdings, möchte ich ja nur die letzten 5 aktuellesten Ereignisse.

Mein jetziger Code...
Delphi-Quellcode:
with QRYMB256PLUS do begin
  SQL.Clear
  SQL.Text := 'Select * from MB256PLUS where Ereignis=Einbruch';
  QRYMB256PLUS.Open;
  while QryMB256PLUS Not eof do
  begin
    CBAlarme.Items.Add(FieldByName('Ereignis').AsString);
  end;
  Active := false;
  Close;
end;

omata 25. Mär 2009 23:38

Re: Datenbankeinträge in ComboBoxen zur Anzeige bringen.
 
Wie sieht denn deine Datenbankstruktur (Tabelle) aus? In einer Datenbank gibt es keine Reihenfolge, es sei denn du definierst eine. Sprich du hast eine Spalte, nach der du sortieren kannst. Mit First kannst du dann die Ergebnismenge einschränken...
SQL-Code:
SELECT FIRST 5 *
FROM tabelle
ORDER BY datum DESC

Jens Hartmann 26. Mär 2009 06:40

Re: Datenbankeinträge in ComboBoxen zur Anzeige bringen.
 
Zitat:

Wie sieht denn deine Datenbankstruktur (Tabelle) aus? In einer Datenbank gibt es keine Reihenfolge, es sei denn du definierst eine. Sprich du hast eine Spalte, nach der du sortieren kannst. Mit First kannst du dann die Ergebnismenge einschränken...
Das ist mir soweit auch klar, ich sortiere nach dem Feld ID, welches ich über einen Generator anlegen lasse(Zähler).
Jetzt ist es aber so, das ich immer die letzten 5...

SQL-Code:
SELECT LAST 5 * FROM MB256PLUS WHERE EREIGNIS = Einbruch;
ich vermute das der Code so sein müsste. Leider, möchte ich ja aber auch realisieren, wenn jetzt ein neuer Datensatz dazu kommt, der dieses Kriterium erfüllt, der älteste entfernt wird, und der neue eingefügt wird.

Ich denke mir nur, wenn da alle 10 Sek. ein neuer Datensatz kommt, ob es da Sinnvoll ist die Query halt jedesmal auf´s neue abzufragen.

Daher dachte ich, das irgendwie einfacher mit einer DB-Komponente lössen zu können.

MFG

Jens


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:49 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz