Först vill jag klargöra hur vårt Api funkar. Vi har inga recordsets eller liknande i minnet alls. Det enda vi har är en post. När man söker och stegar framåt eller bakåt läses aktuell post in i minnet, och man kommer åt dess data via våra funktioner.
Vilka poster man kommer åt och i vilken ordning styrs genom sorteringsordningar. En sorteringsordning är alltså både en ordning och ett filter. Detta motsvarar ett index i FoxPro-databasen.
Om vi tar artikeldatabasen som exempel så finns sorteringsordningen eArticleNr som ger tillgång till alla artiklar i databasen i artikelnr-ordning. Det finns också eArticleWebshop, och den ger tillgång till alla artiklar markerade som webshopsartiklar, sorterade efter artikelnr.
Vill man leta efter en kund med ändringar efter ett specifikt datum - så går det lösa smidigare än beskrivet ovan. Däremot tex epostadress - så får man loopa igenom alla tills man hittar rätt - eftersom vi inte har index för det fältet.
Avsnittet "Arbeta med tidstämplar" i vår referensmanual visar hur man söker efter poster ändrade from en viss tidpunkt.
- Leta reda på vilket fält som är tidstämpeln med AdkGetTimestampField
- Omvandla din datumtid-sträng till en long med AdkDateTimeToLong
- Sätt tidstämpeln i med AdkSetDate
- Kör AdkFind och Loopa med AdkNext
För detaljerna läs mer i manualen på sid 88 i senaste upplagan (daterad 2013-02-22).
Slutligen - jag håller definitivt med att vårt Api har en tröskel man måste komma över, samt att det är vissa funktioner som man saknar jämfört med tex SQL.
Jag tror att vi med en rimlig insats kan komma med förbättringar kring hur man söker, men jag är tveksam till att vi abstraherar vårt Api till någon SQL-liknande syntax så länge vi har nuvarande databaslösning.