Anzahl gefundener Recordsets in ASP ausgeben
Monika
- asp.net
0 Ralf Walther0 Monika0 Ralf Walther0 Monika0 Ralf Walther0 monika
0 Jan Schöfer
Guten Morgen!
Ich habe eine kleine Frage, ist wahrscheinlich ziemlich einfach, aber ich bin einfach ein noch ein ziemlich anfängerlicher Anfänger...:-)
also, ich habe folgenden Code mit folgendem (My)SQL-Statement:
<%
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open "SELECT * FROM tbl_personen WHERE wert='1'", db
%>
Nun möchte ich die Anzahl der gefundenen Recordsets auf meiner ASP-Seite per ASP ausgeben, und dies in ein Textfeld. Ich will nicht die Recordsets selber ausgeben, sondern lediglich die Anzahl der gefundenen....
Ich weiss dass dies kein grosses Problem sein sollte, habe auch schon gesucht, bin allerdings nicht weiter gekommen.
Ich wäre froh wenn mir kurz jemand helfen könnte, danke im Voraus,
Gruss,
Monika
Hallo Monika
<%
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open "SELECT * FROM tbl_personen WHERE wert='1'", db
%>
baut EIN Recordset auf.
Nun möchte ich die Anzahl der gefundenen Recordsets auf meiner ASP-Seite per ASP ausgeben, und dies in ein Textfeld.
Die Anzahl der Records liefert die Eigenschaft RecordCount
des Recordset-Objektes.
Gruß
Ralf
Hallo!
Ja, ich denke das mit dem Aufbau der Recordsets ist gut.
Ich habe jetzt gesucht, wie ich mit dem RecordCount die Anzahl der Recordsets ausgeben kann.
...und habe auch etwas gefunden, ich poste es gerade mal:
strSQL = "SELECT * FROM Table"
Set conn = CreateObject("ADODB.Connection")
conn.Open "DSN=MyDatabaseDSN"
Set rs = CreateObject("ADODB.RecordSet")
rs.CursorLocation = adUseClient
rs.CursorType = adOpenStatic
rs.Open strSQL, conn
Response.Write "Anzahl der Datensätze = " & rs.RecordCount
Nun habe ich das probiert, aber es kommt folgende Meldung:
-------
ADODB.Recordset- Fehler '800a0bb9'
Die Argumente sind vom falschen Typ, liegen außerhalb des Gültigkeitsbereiches oder sind miteinander unvereinbar.
-------
Ich denke, das liegt an den Cursors, allerdings habe ich keine Ahnung von denen, kannst du mir da weiterhelfen?
Danke, Grüssles,
Monika
Hallo Monika!
Mit diesen Cursors habe ich bisher auch noch nicht gearbeitet,
es gibt jedoch noch eine andere Lösung, die Anzahl der Sätze zu ermitteln.
Nehme als SQL-String nicht
strSQL = "SELECT * FROM Table"
sondern
strSQL = "SELECT COUNT(*) FROM Table"
und lese den ersten Satz des Recordsets.
Gruß
Ralf
Hi!
Danke!
Ich habe noch eine dumme Frage:
und lese den ersten Satz des Recordsets.
Wie meinst du das? Wie kann ich den ersten Satz des Recordsets auslesen?
Gruss, Monika
Hallo Monika!
Über die Funktion
rs.MoveFirst()
steuerst Du den ersten Satz an (möglicherweise das sogar auch nicht notwendig).
Dann erhälst Du über rs.Fields(0) den Wert.
Wenn Du das SQL-Statement noch verfeinerst, ala
Select count(*) as anzahl from Table
so kannst Du über rs("anzahl") auf die Anzahl zugreifen.
Gruß
Ralf
hi!
ja danke! ich habe es geschafft, allerdings anders als du sagst, aber es funzt!
danke dir, schönen tag noch,
griitz,
monika
Hi Monika,
du hast es ja schon, wollte aber trotzdem noch was sagen:
Lass dich nicht verwirren von den vielen Details, die genannt wurden,
was du suchst ist schlicht und ergreifend (wie auch schon genannt) das "select count(*)...", weitere Infos brauchst du in der Regel nicht.
Wende das aber nur an, wenn es unbedingt sein muß weil das eine recht aufwendige Operation auf der Datenbank ist.
Beispiel:
sql="select count(*) from tabellenname where id="&IRGENDWAS
set RS=Conn.Execute(sql)
ANZAHL = RS(0)
Viel Spaß :-)
Grüße,
Jan