Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Brug en sortering, hvor du "vender" den. Det gør du ved at angive DESC efter de felter du sorterer på, f.eks.
SELECT * FROM tabel WHERE kundenr < 300 ORDER BY kundenr DESC
På den måde vil du som første row du læser få den kunde med det største kundenr under 300. Hvis man bruger .MoveLast (som kun kan bruges i VB/VBA/VBScript/ASP), vil det gennemtvinge en komplet læsning af bufferen, hvilket ikke er optimalt, hvis det kun er den sidste row man er interesseret i.
De fleste databaser har desuden måder at begrænse det recordsæt der returneres. Access har f.eks. SQL instruktionen TOP xxx:
SELECT TOP 1 * FROM tabel WHERE kundenr < 300 ORDER BY kundenr DESC
vil begrænse det antal rows der returneres til 1 row, hvilket vil være det optimale i dit tilfælde.
TOP fungerer også i MS SQL, men du kan også prøve følgende
SELECT * FROM tabel WHERE dato = (SELECT MAX(dato) FROM tabel WHERE felt = kriterie)
Det returnerer den eller de poster som modsvarer den seneste dato i sub-selecten (hvilket svarer til den sidste dato i en stigende sortering). Du kan bruge MIN-funktionen til at finde første post.
Kræver dog at din database understøtter sub-selects.
rodding--> citat: "Det er en DB2 database, og den håndterer åbenbart ikke TOP og rsRecordset...."
DB2 bruger ganske rigtigt ikke TOP xx instruktionen, men FETCH xx ROWS ONLY, som jeg skrev ovenfor. Jeg var ikke klar over hvilken database du bruger (ved det, jeg burde have spurgt :-) ), derfor gav jeg et eksempel med TOP xx, som bruges af Access og MS SQL. MySQL bruger en LIMIT funktion, og sådan leger de i hver deres sandkasse, de kære databaseproducenter.
Recordset.MoveLast er derimod en ADO funktionalitet (metode), og har ikke direkte noget med SQL / DB2 at gøre. Den positionerer bare cursoren inden for det recordsæt databasen returnerer som resultat af udførelsen af din SQL.
kjulius tak for forklaring, vil jeg gøre brug af en anden gang.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.