AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Array/List-Datatype

Ein Thema von lxo · begonnen am 30. Apr 2019 · letzter Beitrag vom 2. Mai 2019
Antwort Antwort
Seite 1 von 3  1 23   
lxo

Registriert seit: 30. Nov 2017
27 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Array/List-Datatype

  Alt 30. Apr 2019, 10:55
Datenbank: Firebird • Version: 3 • Zugriff über: UniDAC
Hallo zusammen,

ich komme nicht darauf wie ich das realisieren soll bzw. macht es anders Sinn?

Folgendes Problem:
Ich habe eine Tabelle mit einem Feld in der ich eine Referenzkette schreibe.
z.B. "10.436.223.454.34" "10.1" "2" "4943.393.59"
Momentan würde ich diese Kette als String mit Punkt getrennt schreiben.
Angenehmer wäre jedoch meiner Meinung ein dynamisches array of Integer oder ähnliches.
Gibt es eine Möglichkeit so ein Array in ein Feld in der Datenbank zu sichern bzw. in ein Feld in einem Dataset?
  Mit Zitat antworten Zitat
hoika
Online

Registriert seit: 5. Jul 2006
Ort: Magdeburg
6.983 Beiträge
 
Delphi XE4 Professional
 
#2

AW: Array/List-Datatype

  Alt 30. Apr 2019, 10:58
Hallo,
FB kennt zwar arrays (https://firebirdsql.org/file/documen...bnrytypes.html), aber dafür sind die glaube ich nicht geeignet.

Warum willst du das ausdröseln?
Für eine bessere Suche?
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.289 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Array/List-Datatype

  Alt 30. Apr 2019, 11:01
Man könnte dies in einen BLOB Streamen. Firebird kennt zwar Arrays, die (clientseitige) Unterstützung dafür ist aber nicht so toll.
Markus Kinzler
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
240 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Array/List-Datatype

  Alt 30. Apr 2019, 11:02
Hallo zusammen,

ich komme nicht darauf wie ich das realisieren soll bzw. macht es anders Sinn?

Folgendes Problem:
Ich habe eine Tabelle mit einem Feld in der ich eine Referenzkette schreibe.
z.B. "10.436.223.454.34" "10.1" "2" "4943.393.59"
Momentan würde ich diese Kette als String mit Punkt getrennt schreiben.
Angenehmer wäre jedoch meiner Meinung ein dynamisches array of Integer oder ähnliches.
Gibt es eine Möglichkeit so ein Array in ein Feld in der Datenbank zu sichern bzw. in ein Feld in einem Dataset?
Klar geht das, dazu gibt es BLOB-Felder. Du kannst halt nur nicht in einem solchen Feld direkt irgend was suche, aber eine array zu speichern und später wieder zu laden ist einfach. Schreib als erstes die Zahl der Elemente in den bolb-stream, dann den Inhalt des Arrays. Zum Laden lies ein Integer aus dem Blobstream (= Zahl der Elemente), dimensioniere den Zielarray per SetLength entsprechend und lies den Rest des stream in den Array ein.
Peter Below
  Mit Zitat antworten Zitat
lxo

Registriert seit: 30. Nov 2017
27 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: Array/List-Datatype

  Alt 30. Apr 2019, 11:04
Warum willst du das ausdröseln?
Für eine bessere Suche?
Genau um angenehmer an jedes Element des Eintrags zu gelangen.
  Mit Zitat antworten Zitat
lxo

Registriert seit: 30. Nov 2017
27 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

AW: Array/List-Datatype

  Alt 30. Apr 2019, 11:07
Hallo zusammen,

ich komme nicht darauf wie ich das realisieren soll bzw. macht es anders Sinn?

Folgendes Problem:
Ich habe eine Tabelle mit einem Feld in der ich eine Referenzkette schreibe.
z.B. "10.436.223.454.34" "10.1" "2" "4943.393.59"
Momentan würde ich diese Kette als String mit Punkt getrennt schreiben.
Angenehmer wäre jedoch meiner Meinung ein dynamisches array of Integer oder ähnliches.
Gibt es eine Möglichkeit so ein Array in ein Feld in der Datenbank zu sichern bzw. in ein Feld in einem Dataset?
Klar geht das, dazu gibt es BLOB-Felder. Du kannst halt nur nicht in einem solchen Feld direkt irgend was suche, aber eine array zu speichern und später wieder zu laden ist einfach. Schreib als erstes die Zahl der Elemente in den bolb-stream, dann den Inhalt des Arrays. Zum Laden lies ein Integer aus dem Blobstream (= Zahl der Elemente), dimensioniere den Zielarray per SetLength entsprechend und lies den Rest des stream in den Array ein.
Hm.. siehst du da denn ein Vorteil zu der Methode die ich habe?
Vom Aufwand eigentlich das mindestens das selbe oder?
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.284 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Array/List-Datatype

  Alt 30. Apr 2019, 11:15
Warum schreibst Du nicht jedes Element der Referenzkette in eine weitere Tabelle?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
240 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Array/List-Datatype

  Alt 30. Apr 2019, 11:18

Hm.. siehst du da denn ein Vorteil zu der Methode die ich habe?
Vom Aufwand eigentlich das mindestens das selbe oder?
Naja, Du brauchst halt keine komplexen String zusammenzubauen und wieder auseinanderzunehmen. Ob Du mit einem array of integer in deinem Programm einfacher arbeiten kannst als mit deinem momentanen Konstrukt mußt Du selbst wissen.
Peter Below
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.800 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Array/List-Datatype

  Alt 30. Apr 2019, 11:21
Warum schreibst Du nicht jedes Element der Referenzkette in eine weitere Tabelle?
Ich habe auch das Gefühl, dass es eigentlich um eine Master-Detail-Beziehung geht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
lxo

Registriert seit: 30. Nov 2017
27 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#10

AW: Array/List-Datatype

  Alt 30. Apr 2019, 11:43
Warum schreibst Du nicht jedes Element der Referenzkette in eine weitere Tabelle?
Aber nicht jedes Element gehört zwingend zur gleichen Vorfahr.
Es gibt auch solche Konstrukte "10.436.1" "10.235.1" "10.1" (theoretisch)
Da müsste ich ja jedes Element mehrfach eintragen und woher weiß ich welches jetzt der richtige Vorfahr ist?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf