13. september 2005 - 10:58Der er
11 kommentarer og 2 løsninger
ADO RecordCount
Hej
Jeg har et problem hvor mit recordset altid returnerer -1 uanset hvad der er af indhold i den. Nogen der ved hvordan jeg får at vide hvor mange recordt der er i mit recordset før jeg løber den igennem?
du kan jo altid i din sql sætning tælle ved Select Count(*) From din_tabel Where noget = noget_andet Resultatet af den sql vil give dig antallet af rækker som opfylder din betingelse
Ja men det handler om at finde en forklaring på RecordCount,.jeg har fundet nogle oplysninger på nettet hvor der står at der indimellem er et problem med ADO i den forbindelse..
Ved bare ikke om det handler om at vælge andre cursortype eller hvad... ?!?
Og et lille trick i forhold til din count: Antag du har: StrSql="Select a,b,c from TableX where XXX"
Du kan tage din recordcount på denne måde: Dim StrSQlCount as string StrSQlCount="Select Count(*) From (" & StrSql & ") CountData" og eksekvere denne mod din conn.
RecordCount findes kun hvis du benytter Cursortype adOpenDynamic (2) eller adOpenStatic (3).
Hvis du viser hvordan du åbner dit recordset kan jeg vise hvad der skal gøres.
Jeg gør sådan:
Dim Con, Com, Rec Set Con = Server.CreateObject("ADODB.Connection") Set Com = Server.CreateObject("ADODB.Command") Set Rec = Server.CreateObject("ADODB.Recordset")
Con.Open strConnectionString Com.ActiveConnection = Con
Endnu en mulighed: Hvis du alligevel ved, at du skal gennemløbe alle rows i det returnerede recordset, kan du også benytte det lille trick med at bruge en .MoveLast før du spørger på .RecordCount - derved får du det rigtige antal records. Men det bevirker også, at alle rows bliver overført til bufferen. Det er jo ikke så resourcebesparende, hvis det f.eks. kun er den første row, du ønsker at læse. Men ved små tabeller betyder det måske ikke så meget. Du er selvfølgelig bagefter nødt til at bruge en .MoveFirst, men det vidste du jo godt :-)
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.