Announcement

Collapse
No announcement yet.

AdsTableOptions

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

  • AdsTableOptions

    Ich habe eine Frage zu den AdsTableOptions. Ich bin dabei eine BDE-Application auf ADS umzustellen. Dabei benutze ich häufig die Funktion Recordcount. Nun ist mir aufgefallen, dass die Funktion nur bei gesetzter AdsTableOption = RESPECT_SCOPES_WHEN_COUNTING funktioniert. In diversen Beipielen wird vor dem Recordcount die Option gesetzt und danach wieder auf IGNORE_SCOPES_WHEN_COUNTING zurück gestellt. Warum ist das so ? Welche AdsTableoptionen spielen generell eine wichtige Rolle im Netzwerkbetrieb ?

    MfG

  • #2
    Das hat was mit Geschwindigkeit im Netztwerkbetrieb und bei großen Datenmengen zu tun.

    Tipps:
    1. Ändere For i:= 1 to Tabelle.Recordcount auf
    While not Tabelle.eof um

    2. Falls Du sonst noch die Anzahl der Datensätze in der Antwortmenge benötigst und TADSTable einsetzt, dann
    benutze folgene Routine:
    function TDM.Get_Anzahl_Datensaetze(Table: TAdsTable): integer;
    begin
    Table.AdsTableOptions.AdsFreshRecordCount:= true;
    Table.AdsTableOptions.AdsFilterOptions:= (RESPECT_WHEN_COUNTING);
    result:= Table.RecordCount;
    Table.AdsTableOptions.AdsFilterOptions:= (IGNORE_WHEN_COUNTING);
    Table.AdsTableOptions.AdsFreshRecordCount:= false;
    end;

    3. Wenn Du was neues programmierst, dann versuche es mit SQL (TADSQuery) zu lösen.

    4. Vorhandene BDE-Programme änderst Du am schnellsten indem Du, nach einer Sicherung, in der DFM-Datei TTable durch TADSTable und TQuery durch TADSQuery tauschst.

    Viel Spaß
    Dietma

    Comment

    Working...
    X