Announcement

Collapse
No announcement yet.

IBX und CachedUpdates

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

  • IBX und CachedUpdates

    Hallo Spezialisten!<BR>
    Ich kämpfe z.Z. mit einem Bug in Delphi6 Ent. + SP2 und IBX, der eigentlich seit IBX4.1 behoben sein soll. Siehe Aussage:<BR>
    Fixes/Changes since 4.0<BR>
    g) CancelUpdates does not work with multiple Inserts in CachedUpdates mode.
    <BR>
    <BR>
    Und genau dieses Problem gibt es wieder in IBX6. Habe alle Updates von 6.01 - 6.08 durchgespielt. Immer der gleiche negative Erfolg. Beim Einfügen von mehr als einem Datensatz und anschließdem 'CANCELUPDATES' gibts den Fehler. Es passiert beim REVERTRECORD in der Unit IbCustumDataSet.
    <BR>
    <PRE>
    procedure TIBCustomDataSet.RevertRecord;
    var
    Buff: PRecordData;
    begin
    if FCachedUpdates and FUpdatesPending then
    begin
    Buff := PRecordData(GetActiveBuf);
    (*
    InternalRevertRecord(Buff^.rdRecordNumber);
    // FEHLER: Buff^.rdRecordNumber mehreren Änderungen = -1!!
    ReadRecordCache(Buff^.rdRecordNumber, PChar(Buff), False);
    *)
    // Reihenfolge getauscht
    ReadRecordCache(Buff^.rdRecordNumber, PChar(Buff), False);
    InternalRevertRecord(Buff^.rdRecordNumber);
    DataEvent(deRecordChange, 0);
    end;
    end;
    </PRE>
    <BR>
    <BR>
    Der Aufruf von InternalRevertRecord liefert nach Ausführung -1 als RecordNummer, wonach ReadRecordCache logischerweise bugt.
    Der Buff wird durch einen Resync aus der Unit DB neu (und falsch ???) geschreiben.
    <BR>
    Tausche ich die Reihenfolge der Aufrufe, schein es zu laufen. Aber ist das wirklich die Lösung??
    <BR>
    Antworten dringend erbeten!<BR>
    <BR>
    Gruß Gunnar
Working...
X