Datenbank Spalte in ListBox darstellen

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Der_Chris
Beiträge: 1
Registriert: Di 3. Sep 2013, 15:46

Datenbank Spalte in ListBox darstellen

Beitrag von Der_Chris »

Hallo Ihr, ich arbeite erst seit ein paar Tagen mit Lazarus und habe dort eine Datenbank erstellt.
Diese besteht aus DBF Datenbank und einer Datasource. Habe 2 Formen, in Form 2 werden Einträge zur Datenbank hinzugefügt was auch super funktioniert.
Jedoch möchte ich in Form 1 eine ListBox haben welche mir die Namen aus der Datenbank ausgibt, sobald ich die einzelnen Namen clicke
sollen sie in nebenstehenden TextBoxen die passenden Einträge ändern. Also habe ich eine TDBListBox herreingezogen und sie mit dem Datasource aus Form 2
verbunden. Aber die ListBox bleibt leer. Hoffe Ihr könnt mir helfen.
Mit freundlichen Grüßen
Chris

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Datenbank Spalte in ListBox darstellen

Beitrag von Michl »

Habe mal ein bischen gegoogelt und probiert, da ich selber keine DBF Datenbank einsetze (ist nicht mehr ganz up to date, mein Favorit als Datenbank ist zur Zeit PostgreSQL, bin aber noch nicht so lange damit unterwegs).

Für was du vorhast, ist die TDBListBox nicht gedacht. Sie ist eher fürs Schreiben als Lesen gedacht. Siehe z.B.: http://www.delphipages.com/forum/showthread.php?t=98402

Ich habe aber mal zu Testzwecken das Beispiel von Lazarus (bei mir C:\lazarus\examples\address_book) geladen und statt einer TDBListBox eine TDBLookupListBox auf die Form gezogen und dann:

- ListSource "DSAddress" eingestellt
- KeyField "LastName" eingegeben

damit wird die Spalte LastName in der TDBLookupListBox angezeigt

Stelle ich noch die DataSource auf "DSAddress" und das DataField auf "LastName", kann ich damit in der DBF Datenbank die Namen entsprechend der TDBLookupListBox ändern. Das macht in dem Bsp. jetzt nicht wirklich Sinn, aber es zeigt, wie man die TDBLookupListBox oder TDBListBox (diese müsstest du manuell füllen - habe ich auch mal getestet) nutzen kann.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Antworten