Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi blobstream.free verursacht einen Fehler (https://www.delphipraxis.net/18849-blobstream-free-verursacht-einen-fehler.html)

lkz633 25. Mär 2004 09:24


blobstream.free verursacht einen Fehler
 
Hallo,

habe folgenden Code:

Delphi-Quellcode:
procedure Tfdirectsync.sync_blobfield(panelnumber: integer);
var blob_source,blob_target: tblobstream;
begin
  dm_data.aq_target.SQL.Clear;
  dm_data.aq_target.SQL.Add('select '+lv_target.Items[panelnumber].Caption+' from '+lv_target.Hint+' where '+getwherestring); //nur blobfelder anzeigen
  try
     dm_data.aq_target.Open;
     if not dm_data.aq_source.FieldByName(panel_caption[panelnumber]).IsNull then begin
        dm_data.aq_target.edit;   // muss hierher, da sonst tabellen mit mehr als 1 Blobfeld nicht funktionieren
        blob_source := tblobstream(dm_data.aq_source.CreateBlobStream(dm_data.aq_source.FieldByName(panel_caption[panelnumber]),bmRead));
        blob_target := tblobstream(dm_data.aq_target.CreateBlobStream(dm_data.aq_target.FieldByName(lv_target.Items[panelnumber].Caption),bmReadWrite));
        blob_target.CopyFrom(blob_source,blob_source.size);
        dm_data.aq_target.Post;
     end;
     dm_data.aq_target.close;
  finally
      if blob_source<> nil then
          freeandnil(blob_source);
        if blob_target<>nil then
         freeandnil(blob_target);
  end;
end;
Das klappt theoretisch auch wunderbar, bekomme jedoch im finally Block einen Fehler "weder im Editier- noch im Einfuegemodus". Wenn ich den finally Block auskommentiere klappt es.

Kann sich das jemand erklaeren?

Gruss und dank
lkz633

PS: Damit das funtkioniert musste ich db und dbtable in die uses aufnehmen. Benutze ich jetzt die BDE?

Sharky 25. Mär 2004 09:30

Re: blobstream.free verursacht einen Fehler
 
Hai lkz633,

versuche mal deine Query nach dem "freeen" der Blobstreams zu schließen.

lkz633 25. Mär 2004 09:36

Re: blobstream.free verursacht einen Fehler
 
hab ich schon versucht, hat auch nicht geklappt.

Gruss lkz633

Sharky 25. Mär 2004 09:55

Re: blobstream.free verursacht einen Fehler
 
Warum eigentlich die extra angabe von tblobstream im Creat?

Code:
blob_source := [color=red]tblobstream[/color](dm_data.aq_source.CreateBlobStream(dm_data.aq_source.FieldByName(panel_caption[panelnumber]),bmRead));


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