Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Binärdaten in Firebird - wie? (https://www.delphipraxis.net/130238-binaerdaten-firebird-wie.html)

WoGe 5. Mär 2009 11:04

Datenbank: firebird • Version: 2.0 • Zugriff über: IBX

Binärdaten in Firebird - wie?
 
Hallo
ich möchte ca 200 Byte Binärdaten in einer Firebird-Tabelle speichern
Bei der kleinen Menge möchte ich eigentlich auf die übliche Blob/Stream Methodik verzichten.
Besonders weil es auch noch schnell gehen soll.

Welcher Datentyp wäre dafür gut?
Welche Zugriffsmethode?

Meine Daten befinden sich in einem Array[0..200] of byte - Dieses ist aber nicht immer ganz voll.

Gruss
wo

Klaus01 5. Mär 2009 11:09

Re: Binärdaten in Firebird - wie?
 
Hallo,

kodieren (base64/mime/uuencode) magst Du die Zeichenkette nicht,
so das sie in ein String/Textfeld passen?

Grüße
Klaus

WoGe 5. Mär 2009 11:21

Re: Binärdaten in Firebird - wie?
 
Hallo

@Klaus
nein umkodieren wollt ich das eigentlich nicht, weil das ansich ja aufwändiger wäre als es in einen Stream zu kopieren und den dann via Blob zu speichern.

Mit welchen Mitteln würdest Du das umkodieren?

Ich befürchte nur - es gibt keinen wirklich einfachen Weg.

Gruss
wo

Klaus01 5. Mär 2009 11:26

Re: Binärdaten in Firebird - wie?
 
Zitat:

Zitat von WoGe
...
Mit welchen Mitteln würdest Du das umkodieren?
...

Das kodieren könntest Du z.b. mit dieser Routine machen.

Grüße
Klaus

mkinzler 5. Mär 2009 12:24

Re: Binärdaten in Firebird - wie?
 
Zitat:

Bei der kleinen Menge möchte ich eigentlich auf die übliche Blob/Stream Methodik verzichten.
Besonders weil es auch noch schnell gehen soll.
Warum sind Blobs langsam sein?

WoGe 5. Mär 2009 12:38

Re: Binärdaten in Firebird - wie?
 
Zitat:

Zitat von mkinzler
Warum sind Blobs langsam sein?

Also unelegant / umständlich wäre vielleicht passender. Es gibt auch keine einfach Anzeigemöglichkeit für Blobs.

ich habe es zur Zeit so gelöst:
Delphi-Quellcode:
procedure TFormIOHandler.Insert_PSatz(aArray: array of byte);
var myStream : TMemoryStream;
begin
  myStream := TMemoryStream.create;
  myStream.Read(aArray,sizeof(aArray));
  IBQueryPSatz.ParamByName('Rohsatz').LoadFromStream(myStream,TBlobtype(0));
  IBQueryPSatz.ExecSQL;
  mySTream.Free;
end;
und hatte darauf gehofft, das es etwas "schickeres" geben könnte

Grüsse
wo

DeddyH 5. Mär 2009 12:43

Re: Binärdaten in Firebird - wie?
 
[OT]
Zitat:

Zitat von mkinzler
Warum sind Blobs langsam sein?

Kreativer Satzbau, Markus :mrgreen: [/OT]


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