AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ListBox in DB speichern
Thema durchsuchen
Ansicht
Themen-Optionen

ListBox in DB speichern

Ein Thema von Hansa · begonnen am 5. Mai 2003 · letzter Beitrag vom 5. Mai 2003
Antwort Antwort
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

ListBox in DB speichern

  Alt 5. Mai 2003, 14:06
wie kann ich den Inhalt einer Listbox in einer IB-Datenbank abspeichern? Eventuell käme auch ein StringGrid in Frage. Angenommen, ich fülle die Box oder das Grid mit Werten, so daß die DB vorerst nichts davon mitbekommt. Erst am Ende soll alles auf einen Schlag in die DB.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#2
  Alt 5. Mai 2003, 17:36
Hallo Hansa,
das ist nicht weiter schlimm.
Den Inhalt einer ListBox kann man prima in einen Blobfield speichern.
Dafür habe ich Dir ein Beispiel angehängt.
Die Beispiel Tabelle lb.gdb muss im Verzeichnis D:\Delphi5\Test\Tlistbox in IB Database liegen und der Interbase-Server muss laufen, wenn Du die EXE testen möchtest. Weiterhin enthält die Tabelle LBTABLE ein Feld mit dem Namen ID. Dies ist der Primary-Key der Tabelle und muss eindeutige Werte enthalten. Den Wert für ID hole ich über eine StoredProc und einen Generator. Da ich es erst bei 28ten Versuch geschafft habe einen Datensatz in die Tabelle zu schieben kann man die Daten erst ab ID=28 selecten (wird im Spinedit eingestellt). Da ich gerade auf meiner Terrasse am Laptop sitze und auf dem Ding noch die IBX-Version war, die mit D5 ausgeliefert wird musste ich erst auf die Version 5.03 für D5 SP1 updaten. Erst mit diesem Update läuft das Programm.

IBX 5.03

{Ich gehe davon aus, dass kein DBGrid und keine TDatasource verwenden möchtest}
Wenn Du ein StringGrid in eine Datenbank schieben möchtest, dann lege Dir in der Datenbank eine Tabelle an, die genau soviele Felder hat wie das StringGrid. Plus einer Spalte für einen Primary-Key. Der Primary-Key sollte so etwas wie ein AutoInc-Feld sein. Über den Primary-Key kannst Du dann den Datensatz eindeutig identifizieren. Wie ich AutoInc-Felder erzeuge habe ich im TListBox-Beispiel gezeigt.
Jetzt kannst Du in einer TIBDataset ein Insert-SQL zusammenbastelen (mit Parametern) und Dein StringGrid zeilenweise in die Datenbank posten.
Wenn Du allerdings in Deinem StringGrid Datensätze hast, die schon in der Datenbank sind, dann wird es komplizierter.
Dann musst Du die Fälle Insert, Update und Delete unterscheiden.
Für diesen Fall empfehle ich Dir das Du Dir eine Objektstruktur anlegst, die die eigentlichen Daten enthält und das Du das StringGrid nur zur Visualisierung der Daten verwendest. Mit zwei TList Objekten kann man eine solche Objektstruktur aufbauen.
Leider ist die Sache so komplex, dass ich noch nicht weiss wie ich es hier ins Forum posten soll.
Angehängte Dateien
Dateityp: zip lb2ib.zip (330,1 KB, 36x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:23 Uhr.
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