Thomas S.: Datenbankabfrage ob Daten vorhanden

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.

  1. Nachtrag,
    ich will natürlich schauen ob die DB leer ist oder kein Datensatz gefunden wurde.

    Gruß Thomas

  2. 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

  3. 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.

    1. 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