Heart-Profit ERP
July 05, 2024, 11:56:07 pm *
Welcome, Guest. Please login or register.

Login with username, password and session length
News:
 
   Home   Help Login Register  
Pages: [1]
  Print  
Author Topic: ADS_ADT kent geen deleted records ?  (Read 2142 times)
0 Members and 0 Guests are viewing this topic.
Wouter Rijnbende
Administrator
Partner
*****
Offline Offline

Posts: 5361


View Profile WWW
« on: September 28, 2012, 01:29:35 pm »

Als het goed is zou ADS_ADT geen deleted records kennen.

Stel dat we een tabel hebben met 100 records, en we verwijderen hier 10 records uit (#2 t/m #11), dan zien we het aantal Records in de tabel (VFP: RECCOUNT()) dalen van 100 naar 90. Met een AdsShowDeleted(1) (VFP: SET DELETED OFF) zien we geen verwijderde records. Alles lijkt erop dat de records nu ook daadwerkelijk uit de tabel zijn verwijderd. Toch is dit niet het geval.

Het 100e record levert nl. nog steeds een AdsGetRecordNum van 100 op (VFP: RECNO() = 100), en daarmee is RECNO() dus groter dan RECCOUNT(). Ook zal een nieuwe AdsAppend (VFP: APPEND BLANK) niet een nieuw record toevoegen, maar, een eerder verwijderd recordnummer hergebruiken. Ofwel, het nieuwe recordnummer kan #2 opleveren (omdat deze intern recalled wordt).

Dit levert problemen op bij toepassingen die écht iets met het Recordnummer doen, zoals "Doorboeken Batchboekingen", die maximaal doorboekt t/m de RECCOUNT() t.t.v. de aanroep van "Doorboeken Batchboekingen", doch, welke al snel foutloopt, omdat die RECCOUNT() steeds kleiner wordt (bij een gelijk blijvende RECNO().

I.g.v. ADS_ADT zullen wij records dan ook slechts "markeren" als deleted, en bij het uitvoeren van een PACK (reorganiseren) deze records daadwerkelijk verwijderen.

Nb: Voor een juiste werking is het dan ook niet toegestaan om records (ook niet vanuit de Advantage Data Architect) te verwijderen, zonder hierbij een PACK uit te voeren.
« Last Edit: October 01, 2012, 01:21:17 pm by Wouter Rijnbende » Logged

Heart-Profit company ID : HA
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1 RC2 | SMF © 2001-2005, Lewis Media Valid XHTML 1.0! Valid CSS!
Page created in 0.03 seconds with 20 queries.