Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [Firebird] - Text in Tabelle speichern (https://www.delphipraxis.net/22746-%5Bfirebird%5D-text-tabelle-speichern.html)

Schnitzel 22. Mai 2004 18:58


[Firebird] - Text in Tabelle speichern
 
Hi.

Ich möchte einen Text (>255 Zeichen) in eine Tabelle speichern, allerdings gibt es da dirgendwie keinen Datentyp für. Ich habe gesehen, dass man Text in sogenannte Blobs packen kann (weiß gott, was das ist).

Ein Blob ist in der Tabelle schon vorhanden, aber es gibt keine Blob.write oder sonstige Funktionen, also müsste das ja per "insert into.." gehen, aber wie?

Danke schonmal

Lemmy 23. Mai 2004 10:24

Re: [Firebird] - Text in Tabelle speichern
 
Hi,

wie greifst Du auf FB zu? Wenn Du IBX verwendest und ein TIBDataSet hast, dann nimm einfach ein TDBMemo und verbinde es mit deinem Blob-Feld - fertig! Über ein Insert-SQL direkt ein Blob schrieben (wenn ein String vorliegt) geht nicht so einfach, da musst Du auf UDF zurückgreifen, die aber meiner Info nach nicht wirklich funktionieren. Sinnvoller ist es den String in ein TStringlist zu schreiben und diese wiederum in der DB zu speichern.

Grüße
Lemmy

Jens Schumann 23. Mai 2004 10:42

Re: [Firebird] - Text in Tabelle speichern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Schnitzel
Ich möchte einen Text (>255 Zeichen) in eine Tabelle speichern, allerdings gibt es da dirgendwie keinen Datentyp für.

Der Type ist
SQL-Code:
BLOB SUB_TYPE TEXT
Blob = BinaryLargeObject

Zitat:

Zitat von Lemmy
Über ein Insert-SQL direkt ein Blob schrieben (wenn ein String vorliegt) geht nicht so einfach, da musst Du auf UDF zurückgreifen, die aber meiner Info nach nicht wirklich funktionieren.

Das ist definitiv falsch. Ein Insert geht sogar ziemlich einfach. Bei einem parametrisiertem Insert wird dem Parameter für das Memofeld/Blob einfach der String zugewiesen. Ich verwende hierfür TIBSQL.

[edit] Um meine Aussage zu untermauern habe ich noch ein kleines Beispiel angehängt. Dort ist mit Sicherheit der Pfad zur Beispieldatenbank anzupassen[/edit]

Schnitzel 23. Mai 2004 16:05

Re: [Firebird] - Text in Tabelle speichern
 
Dooferweise (so doof find ich das aber gar nicht :)) benutze ich die Zeos-Komponenten - aber ich denke, jetzt hab ich das Prinzip verstanden - es müsste mit Zeos ja ähnlich gehen

vielen Dank!

Lemmy 24. Mai 2004 06:32

Re: [Firebird] - Text in Tabelle speichern
 
Hi Jens,

Zitat:

Zitat von Jens Schumann
Zitat:

Zitat von Lemmy
Über ein Insert-SQL direkt ein Blob schrieben (wenn ein String vorliegt) geht nicht so einfach, da musst Du auf UDF zurückgreifen, die aber meiner Info nach nicht wirklich funktionieren.

Das ist definitiv falsch. Ein Insert geht sogar ziemlich einfach. Bei einem parametrisiertem Insert wird dem Parameter für das Memofeld/Blob einfach der String zugewiesen.

*klugscheiss* Muss ja auch gehen, denn die Komponenten machen ja nichts anderes.
Ich bin bei diesem Satz davon ausgegangen, dass das SQL-Statement in einem Consolenproggy eingegeben wird (deshalb auch das Wort direkt), und da wird das BLOB-Speichern etwas aufwändiger. Ich sollte vielleicht die einen oder anderen Gedanken mit ins Posting packen oder am WE nicht mehr am Computer arbeiten.... ;-)

Grüße
Wolfgang


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