Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Video in Firebird Datenbank (https://www.delphipraxis.net/176594-video-firebird-datenbank.html)

PhilmacFLy 16. Sep 2013 09:29

Datenbank: Firebird • Version: 2.1 • Zugriff über: Zeos

Video in Firebird Datenbank
 
Moin DPler

Ich hab folgende Frage:
Ich nehm mithilfe des DSPack ein Video auf und möchte diese nun in der Datenbank ablegen.
Ich dachte mir zuerst das ich die Datei in einen Stream lade und dann in ein Blob Feld ablege,
nun ist das Problem das das Blob feld sich nicht so groß einstellen lässt.
Jetzt wollt ich wissen ob es da eine Möglichkeit gibt? Denn ansonsten wird mir wohl nichts
anderes übrig bleiben als auf dem DB Server noch eine SMB Freigabe zu erstellen.

Danke jetzt schon für eure Hilfe :)

DeddyH 16. Sep 2013 09:37

AW: Video in Firebird Datenbank
 
AFAIK beträgt die maximale Größe eines BLOB-Werts 32 GB. Die stellt man aber gar nicht nicht ein, sondern die Blockgröße. Wird diese überschritten, speichert Firebird nur eine Referenz in der Tabelle und legt die Daten in einem gesonderten Bereich ab.

Das war jetzt bewusst vereinfacht ausgedrückt, sollte ich Quatsch erzählen, bitte ich um Korrektur.

Nersgatt 16. Sep 2013 09:37

AW: Video in Firebird Datenbank
 
Du stellst doch bei Blobfeldern nur die Segmentgröße ein, nicht die Größe des Blobfeldes selber.
Wenn Du also eine Segmentgröße von x Bytes einstellst, legt die Datenbank die Daten halt in Segment in der eingestellten Größe ab.

PhilmacFLy 16. Sep 2013 10:28

AW: Video in Firebird Datenbank
 
Ah ok nur versteh ich nicht ganz was die Segmentsize bedeutet oder wie ich die einstellen muss

DeddyH 16. Sep 2013 10:31

AW: Video in Firebird Datenbank
 
Belass sie einfach auf dem Standardwert, das passt normalerweise. Mehr dazu: http://groups.yahoo.com/neo/groups/f.../topics/115818

Nersgatt 16. Sep 2013 10:31

AW: Video in Firebird Datenbank
 
Die Datenbank verarbeitet die Daten in Segmenten der angegebenen Größe. Wenn wir wissen, dass wir in einem Blobfeld immer Daten speichern möchten, die z.B. in der Regel 100 Bytes groß sind, dann würde sich eine Segmentgröße von 100 Bytes anbieten.
Bei größeren Dateien (wie z.B. die Videos) würde ich eine entsprechend größere Segementgröße wählen.

Nersgatt 16. Sep 2013 10:34

AW: Video in Firebird Datenbank
 
Zitat:

Zitat von DeddyH (Beitrag 1228643)
Belass sie einfach auf dem Standardwert, das passt normalerweise.

Genau das würde ich nicht machen. Es ist schon sinnvoll kurz über die Segementgröße nachzudenken. Grade wenn man große Datenblöcke speichert ist es sinnvoll die Segementgröße auch höher einzustellen.

DeddyH 16. Sep 2013 10:41

AW: Video in Firebird Datenbank
 
OK, ich habe mich noch einmal belesen:
Zitat:

A blob segment size can be defined, to increase the performance when inputting and outputting blob data. This should roughly correspond to the data type size. With a memo field, for example, for brief descriptions which could however, in individual cases, be considerably longer, the segment length could be defined as 100 bytes, whereby the blob data type is processed in 100 byte blocks.

When processing videos or large graphics in the database, a large segment length should be selected. The maximum length is 65536 bytes. This is because all blob contents are stored in blocks, and are fetched via these blocks. A typical segment size from the old days is 80 (because 80 characters fit onto one monitor line).

When a blob is extracted, the Firebird/InterBase® server reads the number of segments that the client has requested. As the server always selects complete blocks from the database, this value can in effect be ignored on modern powerful computers. 2048 is recommended as a standard since version InterBase® 6.
Quelle: http://ibexpert.net/ibe/index.php?n=...ob#SegmentSize

PhilmacFLy 16. Sep 2013 10:51

AW: Video in Firebird Datenbank
 
Alles klar vielen Dank habt mir sehr weiter geholfen :thumb:

tsteinmaurer 16. Sep 2013 18:54

AW: Video in Firebird Datenbank
 
Ich würde der Segment Size keine Beachtung schenken. Dieses Konzept ist aus den 80er, wo RAM spärlich und teuer war und man dem Client irgendwie mitteilen wollte, in welchen Chunks der Client Daten abholen soll/kann. AFAIK, aktuelle Zugriffsbibliotheken fangen mit dieser Information überhaupt nichts an. Zumindest sind mir diesbzgl. Aussagen seitens Ann Harrison und Co in Erinnerung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:20 Uhr.
Seite 1 von 2  1 2      

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