Datenbankabfrage ob Daten vorhanden
Thomas S.
- asp.net
Hallo Gemeinde
ich möchte mit ASP eine Access DB abfragen, ob die DB leer ist. Das müßte doch mit EOF funktionieren, oder nicht??
Ich habe es so versucht IF RS.EOF THEN . Das Programm läuft aber immer in die Schleife, egal ob Daten da sind oder nicht. Also stimmt was mit der Abfrage nicht. Kann mir jemand sagen wie es richtig sein muß??
Vielen Dank für Eure Hilfe
Gruß Thomas S.
Nachtrag,
ich will natürlich schauen ob die DB leer ist oder kein Datensatz gefunden wurde.
Gruß Thomas
Hallo Thomas S.!
Grundsätzlich hast du recht, aber der Source würde sehr weiterhelfen, sonst kann ich wir dir nciht helfen *G*
CU Roman
Das ist schön,
wenn man seine Fragen selber beantworten kann:-)
Der Fehler lag daran, ich arbeite einmal mit dem IIS3 und einmal mit dem IIS4. Beim IIS3 Funktioniert es wie beschrieben (IF RS.EOF THEN) und beim IIS4 eben nicht. Beim IIS4 wird EOF oder BOF schon mit der Anweisung IF ERR.Number<>0 abgefangen.
Nochmals Danke für's lesen des Postings
Gruß Thomas S.
Das ist schön,
wenn man seine Fragen selber beantworten kann:-)
Der Fehler lag daran, ich arbeite einmal mit dem IIS3 und einmal mit dem IIS4. Beim IIS3 Funktioniert es wie beschrieben (IF RS.EOF THEN) und beim IIS4 eben nicht. Beim IIS4 wird EOF oder BOF schon mit der Anweisung IF ERR.Number<>0 abgefangen.
Nochmals Danke für's lesen des Postings
Gruß Thomas S.
Hallo Thomas,
das wird aber nicht das Problem sein, den IIS 3 und 4 und sogar 5 sind abhängig vom ASP-Modul, daß diese Funktionen bereitstellt.
Folgender Code sollte IMMER funktionieren:
<%
Set DBConn = Server.CreateObject("ADODB.Connection")
DBConn.open "DSNName", "User", "PW"
Set DBRec = Server.CreateObject("ADODB.Recordset")
DBRec.open "SQLString_Oder_Tabellenname", DBConn, 3, 3
If Not DBRec.EOF Then
Response.Write "Alles klar. Datensätze gefunden."
Else
Response.Write "Tabelle leer :("
End if
DBRec.Close
Set DBRec = Nothing
DBConn.Close
Set DBCOnn = Nothing
%>
Daher denke ich, daß Du die Recordsets mit DBConn.Execute("SQLString") öffnest. Dabei solltest Du beachten, daß es hier Probleme mit dem Cursor gibt, da die Zuordnung zu den Feldern unter Umständen schon nach dem ersten Zugriff auf ein Feld flöten gegangen ist. Außerdem ist Execute eigentlich für DML-Kommandos wie Insert, Update, Delete oder auch DDL-Statemenst, wie Create Table ... gedacht.
Tschau, Stefan