Announcement

Collapse
No announcement yet.

2 Probleme mit AdoStream

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 2 Probleme mit AdoStream

    Hallo,

    ich moechte von einer datenbank zu einer anderen datenbank Blob felder kopieren.

    Ein Teil meines Codes ist dieser hier, der theoretisch auch so klappt:
    <pre>
    procedure Tfdirectsync.sync_blobfield(panelnumber: integer);
    var blob_source,blob_target: tadoblobstream;
    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;
    blob_source := tadoblobstream(dm_data.aq_source.CreateBlobStream( dm_data.aq_source.FieldByName(panel_caption[panelnumber]),bmRead));
    blob_target := tadoblobstream(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;</pre>

    habe aber jedoch 2 probleme:

    1) Wenn ich den finnally Block nicht auskommentiere, so bekomme ich immer eine fehlermeldung: Nicht im Editier oder Einfuegemodus. Kann sich das jemand erklaeren? Ich muss die BlobStreams aber doch freigeben oder?

    2) Beim Ole Treiber fuer MS SQL Server erhalte ich beim erzeugen des Blob target einen Fehler: Ungueltige Typumwandlung. Wiso?

    Danke fuer jede Hilfe

    MFG Max Odendahl

  • #2
    In der Hilfe steht:<br>
    <pre><i>Destroy hat folgende Funktionen:

    Legt die Daten des Feldes fest.
    Ändert die Eigenschaft Modified des Feldobjekts auf True.
    Löst ein Feldänderungsereignis im Datenmengenobjekt des Feldes aus.
    Ruft den geerbten Destruktor auf.</i></pre>
    Also gehe ich mal davon aus, dass Du die Freigaben vorm Schließen der Datenmenge tun musst. Ist aber nur eine Vermutung.<p>
    Schöne Grüße, Mario Noac
    Schöne Grüße, Mario

    Comment

    Working...
    X