Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Array oder Stringlist in Datenbank speichern (https://www.delphipraxis.net/52523-array-oder-stringlist-datenbank-speichern.html)

mjreaper 30. Aug 2005 12:34

Datenbank: Paradox • Version: 7 • Zugriff über: BDE

Array oder Stringlist in Datenbank speichern
 
Hallo,

da ich noch relativer Datenbankneuling bin habe ich hier einmal eine bescheidene Frage, auf die ich leider über Google keine richtige Antwort finden konnte.

Also:
Ich möchte gerne in einer Datenbank in einem Feld ein Array oder eine Stringlist speichern, also irgendetwas mit mehreren Einträgen. Wie kann ich so etwas realisieren?
Ausgabe soll anschließend in einem TListbox sein. Aber das pfriemel ich mir dann schon irgendwie zurecht.
Mir fehlen nur so die Grundlegenden Befehle...

Ich habe mehrere Daten, die ich in dieses eine Feld eintragen möchte, zb.
21.3.05
22.10.06
23.1.01

:duck: ich hoffe mir kann jemand helfen bzw. ihr versteht, was ich meine, danke schon im Vorraus!

Bernhard Geyer 30. Aug 2005 12:42

Re: Array oder Stringlist in Datenbank speichern
 
Iiih Paradox...

Aber wenn du eine große Datenbank (wie z.B. Oracle) hast, könntest Du das z.B. über sogenannte Nested Tables abbilden.

Aber für StringListen/Textarrays ist es einfacher sich einen Seperator (z.B Zeilenumbruch) auszudenken und diesen als Trenner zu verwenden und den Text in eine normales DB-Memofeld (text) zu speichern.

dfried 30. Aug 2005 12:54

Re: Array oder Stringlist in Datenbank speichern
 
Zumindest mit Stringlisten wäre das ziemlich einfach, TStringlist.Commatext liefert dir alle Wert als einen String den du in die DB schreiben kannst und genaus wieder lesen. Geht übringends auch mit den Listbox.Items.

Gruß
Daniel

mjreaper 31. Aug 2005 16:18

Re: Array oder Stringlist in Datenbank speichern
 
danke! Das mit TStringlist.Commatext funktioniert genauso, wie ich es mir wünschte! :thumb:

Thanatos81 31. Aug 2005 16:23

Re: Array oder Stringlist in Datenbank speichern
 
So lange du bei Paradox bleibst, könntest du dir auch mal das Memofeld anschauen. Ist im Prinzip nix anderes als ne StringList: Bietet mehrere Zeilen für strings.

Ein Nachteil: Im DBGrid wird nicht der INahlt, sondern nur (MEMO) angezeigt.

mjreaper 1. Sep 2005 21:30

Re: Array oder Stringlist in Datenbank speichern
 
also ich kann jetzt problemlos listen ein und auslesen.
Jetzt habe ich einen Teil Code erstellt und ich bekomme immer den Fehler

Zitat:

Im Projekt xyz ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffverletzung bei Adresse 0041E362 in Modul 'xyz'. Lesen von Adresse 00000005'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
Der Fehler tritt auf, sobald folgender Quelltext ausgeführt wird:

Code:
var test1, test2, test3, test4, komplett : tstringlist;

procedure TForm2.listeClick(Sender: TObject);
var i: integer;
begin
 table1.RecNo:=liste.ItemIndex+1;
 if table1.FieldValues['test1']<>'' then
  begin
   test1.CommaText:=table1.FieldValues['test1'];
   test2.CommaText:=table1.FieldValues['test2'];
   test3.CommaText:=table1.FieldValues['test3'];
   test4.CommaText:=table1.FieldValues['test4'];

   komplett.Clear;
   for i:=1 to test1.count do
   begin
    komplett.Add(test1.Strings[i]+' - '+test2.Strings[i]+' '+test3.Strings[i]+' - '+test4.Strings[i]);
   end;

   liste2.items:=komplett;
  end;


end;
Hintergrundinfo dazu:
Der Anwender klickt in einer Listbox auf einen Eintrag. Mit dem Klick wird die Spalte in der DB bestimmt. Dann lädt er Daten zu dem Eintrag in eine Listbox.

Falls dort oben jemand durchsteigt, sage ich schon einmal: DANKE! :duck:

x000x 1. Sep 2005 23:45

Re: Array oder Stringlist in Datenbank speichern
 
Delphi-Quellcode:
for i:=1 to test1.count do
Muss heißen:
Delphi-Quellcode:
for i:=0 to test1.count -1 do
[EDIT]
vorraussetzung aber, dass irgendwo im Programm auch testXXX:= TStringlist.Create; aufgerufen wurde und
die Listen test2,3 ... mindestens die selbe länge haben wie test1
[/EDIT]

marabu 2. Sep 2005 05:16

Re: Array oder Stringlist in Datenbank speichern
 
Hi mjreaper,

ist sicher Geschmackssache, aber wenn du statt der code-tags die delphi-tags verwendest, sieht das Ganze viel schöner aus.

Und ändere mal das letzte statement ab:

Delphi-Quellcode:
procedure TForm2.listeClick(Sender: TObject);
...
  liste2.items.Assign(komplett);
...
end;
Grüße vom marabu

mjreaper 7. Sep 2005 19:52

Re: Array oder Stringlist in Datenbank speichern
 
danke! es funktioniert nun!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:31 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