AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken BlobStream in StringGrid speichern
Thema durchsuchen
Ansicht
Themen-Optionen

BlobStream in StringGrid speichern

Ein Thema von Smiley · begonnen am 6. Mai 2022 · letzter Beitrag vom 23. Mai 2022
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#1

AW: BlobStream in StringGrid speichern

  Alt 19. Mai 2022, 15:26
Falls der Blob leer bleibt oder der Anfang fehlt:

Delphi-Quellcode:
oFS.Position := 0;
qInsert.Params[0].AsStream.CopyFrom(oFS, -1);
Eventuell auch prüfen, ob man den Blob vorher Clear(en) sollte. (falls vorher mehr Daten drin waren, was neu geschrieben werden)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
210 Beiträge
 
Delphi 12 Athens
 
#2

AW: BlobStream in StringGrid speichern

  Alt 19. Mai 2022, 15:41
Warum ParamStr[0] und wie sage ich in welches Feld der Stream geschrieben wird.

Wie bekomme ich mein Array[0..119] of TJPEGImage in einen MemoryStream (ofs) um diesen dann so zuweisen zu können.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#3

AW: BlobStream in StringGrid speichern

  Alt 19. Mai 2022, 15:53
Params ... nicht ParamStr

such dir was aus, je nach dem wo es rein soll:
Params[123]
ParamByName('abc')
Fields[123]
FieldByName('abc')


TJPEGImage sollte doch sowas wie SaveToStream und LoadFromStream haben, wo du einen TMemoryStream nutzen kannst, bzw. vermutlich sogar direkt den Stream, welchen AsStream dir gibt.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
210 Beiträge
 
Delphi 12 Athens
 
#4

AW: BlobStream in StringGrid speichern

  Alt 19. Mai 2022, 16:23
OK dann also etwa so

qBilder.FieldByName('JPGPic').AsStream.CopyFrom(MS tream, -1);

Jetzt nur noch Das Array in das MStream reinbringen.
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
689 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: BlobStream in StringGrid speichern

  Alt 19. Mai 2022, 17:20
OK dann also etwa so

qBilder.FieldByName('JPGPic').AsStream.CopyFrom(MS tream, -1);

Jetzt nur noch Das Array in das MStream reinbringen.
Einfach die TPicture Klasse nutzen mit SaveToStream und dann aber die Stream.Position auf 0 setzen
  Mit Zitat antworten Zitat
Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
210 Beiträge
 
Delphi 12 Athens
 
#6

AW: BlobStream in StringGrid speichern

  Alt 23. Mai 2022, 10:08
Ich habe jetzt etwas gefunden und zusammengebaut das dem entspricht was ich vorhabe.
Ich schreibe und lese mein TJpegImage Array[0..19) direkt in ein BlobFeld und lese es so auch wieder.
Code:
// **************************************************************************
// * Read and Write Blob Stream                                            *
// **************************************************************************
procedure TDM.ReadBlobStream;
var
  BlobStream: TStream;
Begin
  // Bild aus Datenbank lesen und in AktData.JPegArray schreiben
  BlobStream := DM.qData.CreateBlobStream(DM.qData.FieldByName('PicData'), bmRead);
  BlobStream.Position := 0;
  Try
    BlobStream.ReadBuffer(AktData.JpegArray, sizeof(????????));
  Finally
    BlobStream.Free;
  End;
End;

procedure TDM.WriteBlobStream;
var
  BlobStream: TStream;
Begin
  // Bild aus AktData.JPegArray lesen und in Datenbank schreiben
  BlobStream := DM.qData.CreateBlobStream(DM.qData.FieldByName('PicData'), bmWrite);
  BlobStream.Position := 0;
  Try
    BlobStream.WriteBuffer(AktData.JpegArray, sizeof(AktData.JpegArray));
  Finally
    BlobStream.Free;
  End;
End;
Ist das so korrekt ??
Was muss ich bei SizeOf(??????) reinschreiben?

Geändert von Smiley (23. Mai 2022 um 10:23 Uhr)
  Mit Zitat antworten Zitat
Poelser

Registriert seit: 21. Apr 2008
Ort: Europa
145 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: BlobStream in StringGrid speichern

  Alt 23. Mai 2022, 10:29
Ohne jetzt genauer in die Materie einzutauchen, ist mein erster Gedanke Length(AktData.JpegArray). SizeOf ist doch nur die Größe des Pointers, du brauchst hier aber doch die Länge der Daten.
LG aus dem hohen Norden, Edmund
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 02:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz