30. april 2002 - 09:16Der er
16 kommentarer og 3 løsninger
RecordCount
Jeg bruger følgende kode til at connecte til databasen og hente data
<% Set Con = Server.CreateObject("ADODB.Connection") Con.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=\\server\mappe\databasefil.mdb" SQL="select * from Artikler ORDER BY opdateret_d DESC" Set RS = Con.Execute( SQL ) %> Jeg ville gerne lave en optælling af hvor mange artikler der er i databasen, hvilket jeg prøvede med RS.RecordCount. Dette resulterede i at jeg får returneret værdien -1. Løsninger på problemet er velkomne... ""
med en forwardonly cursor kan du (indlysende nok!) ikke gå baglæns i recordettet.. og der er andre funktioner/properties, du heller ikke har adgang til.
Sådan kan det gøres: <% Set Con = Server.CreateObject("ADODB.Connection") Con.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=\servermappedatabasefil.mdb" SQL="select * from Artikler ORDER BY opdateret_d DESC" Set RS = Con.Execute( SQL ) Do count = count + 1 rs.movenext Loop While Not rs.EOF conn.close set conn = Nothing response.write count %>
Obs lige 1 fejl: <% Set Con = Server.CreateObject("ADODB.Connection") Con.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=\servermappedatabasefil.mdb" SQL="select * from Artikler ORDER BY opdateret_d DESC" Set RS = Con.Execute( SQL ) Do count = count + 1 rs.movenext Loop While Not rs.EOF con.close set con = Nothing response.write count %>
SQL = "SELECT * FROM Artikler ORDER BY opdateret_d DESC" Set Con = Server.CreateObject("ADODB.Connection") Con.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=\\bcedb\database\Knowledgebase.mdb" Set RS = Server.CreateObject("ADODB.Recordset") RS.Open SQL, Con, adOpenStatic, adLockReadOnly, adCmdText
Først en Select-streng, så connection-objektet, så forbindelsen, så recordset-objektet og tilsidst åbningen af recordsættet. Med ovenstående får jeg følgende fejl: Technical Information (for support personnel)
Error Type: ADODB.Recordset (0x800A0BB9) Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another. /helpdesk/visalleartikler.asp, line 51
Jeg går ud fra at du vil bruge nedenstående til at liste alle artiklerne.
<% Set Con = Server.CreateObject("ADODB.Connection") Con.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=\servermappedatabasefil.mdb" SQL="select * from Artikler ORDER BY opdateret_d DESC" Set RS = Con.Execute( SQL ) %>
Derefter ville jeg nok lave et ekstra recordset der tælle indlæggene
<% strSQL = "SELECT COUNT(*) AS Antal FROM Artikler" Set rsCount = Con.Execute(strSQL)
response.write("Der er "&rsCount("Antal")&" artikler i databasen") %>
hvis du udelukkende vil tælle antallet af brugere, skal du gøre som webbe sagde, men hvis du vil bruge recordcount og movefirst (som i dit spm), skal du bruge en adOpenStatic cursor i stedet for adOpenForwardOnly.
Jeg er endt med at bruge webbe's forslag, I skal dog ikke snydes for point.
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.