Announcement

Collapse
No announcement yet.

Frage zu Paradox und SetRange

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

  • Frage zu Paradox und SetRange

    Hallo,

    ich stehe häufiger vor folgendem Problem (D5, Paradox-Tabellen):

    Ich setze einen SetRange über mehrere Felder und arbeite die gefundene Datenmenge über eine While-Schleife ab. In bestimmten Fällen muss ich nun den aktuellen Datensatz editieren, und zwar so, dass dadurch auch eines der im Setrange befindlichen Felder geändert wird.

    Ändert sich dadurch die Reihenfolge der Datensätze? Wie kann ich, ohne den Index zu ändern, sicherstellen, dass ich keinen Datensatz überspringe? Habt ihr eine saubere Lösung dafür?

    Ich würde mich freuen, wenn Ihr mir weiterhelfen könntet.

    Gruß
    Svenja

  • #2
    Hallo Svenja,

    wenn deine Sätze durch die Bearbeitung aus der Range verschwinden, dann musst du dir den Folgesatz merken bevor der aktuelle Satz gelöscht wird. Etwa So....

    <PRE>
    var
    bm: TBookMark;
    tt: TTable;
    begin

    :
    :
    tt.setrange;
    while(not tt.eof)do begin
    //Nächsten Satz der Range merken
    tt.Disablecontrols //scollen des DBGrid verhindern (falls nötig)
    try//finally
    tt.next
    if(tt.eof)then begin//kein Nachfolger vorhanden
    bm := nil;
    end else begin//Nachfolger vorhanden
    bm := tt.GetBookmark;//Folgesatz merken
    tt.prior;//zurück auf aktuellen Satz
    end;//if
    finally
    tt.EnableControls
    end;//finally
    : // do what you have to do
    :
    :
    if(bm <> nil)then begin
    tt.GotoBookmark(bm);
    end;//if
    end;
    end;
    </PRE>

    mfg Diete

    Comment


    • #3
      Hallo Dieter,

      vielen Dank für Deine Antwort.

      Gruß
      Svenj

      Comment

      Working...
      X