Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Array of smallint in mysql speichern (https://www.delphipraxis.net/44003-array-smallint-mysql-speichern.html)

sts1254 11. Apr 2005 22:33

Datenbank: mysql • Version: 4.1 • Zugriff über: Zeos

Array of smallint in mysql speichern
 
Hi,

ich möchte einen Array of smallint irgendwie in eine mysql-Datenbank speichern. Ist das mit Blob-Feldern möglich und wenn ja wie würde man das umsetzen? Es geht pro Datensatz um einen Array mit ca. 4000 Einträgen. Inwiefern wirkt sich das auf die Performance der Datenbank aus?

Danke und nen schönen Abend
sts1254

SubData 11. Apr 2005 23:20

Re: Array of smallint in mysql speichern
 
Ich würde vorschlagen in dem Fall einfach aus dem Array n String zu machen in der Form 23,434,3,33,423 usw.
Und beim Auslesen spaltest du dann einfach die Zahlen wieder am Komma auf...

Denn meines Wissens nach kann man keine Arrays direkt in Datenbanken schreiben.

sts1254 13. Apr 2005 11:16

Re: Array of smallint in mysql speichern
 
Manchmal ist eine Lösung einfacher, als man denkt. :-) Da bin ich irgendwie nicht drauf gekommen... Danke, so ließe es sich auf jeden Fall schon mal realisieren. Gibt es nicht dennoch ne Möglichkeit den Array direkt in die Datenbank zu schreiben.

Danke

marabu 13. Apr 2005 11:47

Re: Array of smallint in mysql speichern
 
Warum nicht jede Zahl nebst PK als record in einer table?

Ein Datenbanksystem kommt mit vielen Sätzen schneller zurecht als du mit dem Umwandeln von Zahlen in Strings und umgekehrt.

Die Ablage von custom data types wird von MySQL meines Wissens nicht unterstützt. Es gibt andere Datenbanksysteme, die das Speichern von arrays direkt unterstützen, eventuell mit einem index-limit unter 4000. Stichworte: post-relational, NF2, OODB

Ehe ich eine Umwandlung von und zu Zeichenketten-Darstellung erwägen würde, würde ich die 8000 Byte als Blob speichern.

SubData 13. Apr 2005 11:59

Re: Array of smallint in mysql speichern
 
Echt die können direkt Arrays speichern? ok dann hab ich nix gesagt :>

sts1254 13. Apr 2005 13:16

Re: Array of smallint in mysql speichern
 
Ok, also jeden Wert mit Pk in eine extra Tabelle geht nicht. Prinzipiell soll jedem Datensatz in einer Tabelle (werden wohl max. ca 1000) einen Array zugeordnet werden.

@marabu: Wie würde man das von dir angedeute speichern in ein Blob-Feld machen?

marabu 13. Apr 2005 13:42

Re: Array of smallint in mysql speichern
 
4 Mio Datensätze sind noch kein echtes Problem für ein Datenbanksystem wie MySQL, aber egal. Es gibt tatsächlich Gründe, aus denen man diese Lösung ausschlagen müsste.

Man kann BLOB Werte in MySQL über Hex-Strings im SQL-Statement einpflegen - siehe Handbuch.
Alternativ stellen deine Zugriffskomponenten wahrscheinlich ein Stream-Interface für BLOB Felder bereit. Ich habe mir ZEOS noch nicht angesehen, aber es wird sich bestimmt jemand finden, falls du auf weitere Probleme stossen solltest.


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