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?