Einzelnen Beitrag anzeigen

lkz633

Registriert seit: 9. Jun 2002
Ort: Aachen
221 Beiträge
 
#1

blobstream.free verursacht einen Fehler

  Alt 25. Mär 2004, 10:24
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?
  Mit Zitat antworten Zitat