Desert: Vergleich Datenbankfeldes und Variable

Hallo
Ich schreibe mir gerade ein ASP Script zum Administrieren (Hinzufügen, Löschen, Ändern) von Datenbaken.
Ich habe folgendes Problem bei der Löschen Prozedur. Er soll vergleichen ob die ID aus der Datenbank die Selbe ist die der Benutzer eingegeben hat, bzw. ob Sie vorhanden ist. Aber aus irgendeinem grund ignoriert er diese abfrage.

Ausgabe:

2Sind Sie sicher das sie
id name vorname email

löschen wollen?
<ja><nein>

?=?5
Fehler: Entweder BOF oder EOF ist True, oder der aktuelle Datensatz wurde gelöscht. Die
angeforderte Operation benötigt einen aktuellen Datensatz.

Der Code:
---------------------------------------------------------------------
sub loeschen
 if todo = 2 then
  %>Sind Sie sicher das sie<br><%
  call Verbindung_aufbauen
  ' Daten erfragen
  on error resume next
  sql = "SELECT * FROM "&db_table&" WHERE id = "&nummer
  set rs = db.Execute(sql)
  if not err.Number=0 then
   %><p><i><strong>Fehler: Möglicherweise kein Datensatz mit der ID:<%=nummer%> vorhanden oder sie haben keine ID eingegeben.
   <form method="post">
    <input id="sav" type="hidden" name="Ttodo" value="0">
    <INPUT src="index.asp" TYPE="submit" VALUE="weiter" NAME="action">
   </form><br>
   Solten ihre angaben korekt sein wenden sie sich an die Pracktikanten die das Intranet betreuen. Bitte geben sie diese ASP meldung an</strong><br>
   <%=err.Description%></i></p><%
   Response.End
  else
   if rs("id") = nummer then%>
    <TABLE border="1"><tr><%
    for each feld in rs.fields
    %>
     <td><%=feld.name%></td>
    <%
    next
    %></tr><%
    counter = 0
    do until rs.EOF
     %><TR><%
     for each feld in rs.fields
      %><td><%=rs(feld.name)%></td><%
     next
     %></TR><%
     counter = counter + 1
     rs.MoveNext
    loop
    %></TABLE>
    <br>löschen wollen?<br>
    <form method="post">
     <input id="sav" type="hidden" name="Ttodo" value="20">
     <INPUT src="index.asp" TYPE="submit" VALUE="Ja" NAME="action">
     <INPUT type="button" value="Nein" onClick="window.history.back()">
    </form>
    <%=rs("id")%>?=?<%=nummer%>
<%   else%>
    <p><i><strong>Fehler: Möglicherweise kein Datensatz mit der ID:<%=nummer%> vorhanden.
    <form method="post">
     <input id="sav" type="hidden" name="Ttodo" value="0">
     <INPUT src="index.asp" TYPE="submit" VALUE="weiter" NAME="action">
    </form>
   <%
   end if
  end if
  call Verbindung_abbauen
 end if

if todo = 20 then
  'löschen ausfüren
  call Verbindung_aufbauen
  sql = "DELETE FROM "&db_table&" WHERE id = "&nummer
  set rs = db.Execute(sql)
  call Verbindung_abbauen
 end if
end sub
---------------------------------------------------------------------

P.S. nur zum Verstennis die todo Variable list er aus einem unsichtbaren Formularfeld.

Danke im voraus Desert

  1. Hallo,

    Ich habe folgendes Problem bei der Löschen Prozedur. Er soll vergleichen ob die ID aus der Datenbank die Selbe ist die der Benutzer eingegeben hat, bzw. ob Sie vorhanden ist. Aber aus irgendeinem grund ignoriert er diese abfrage.

    Welche Abfrage wird Deiner Meinung nach ignoriert? Die Fehlermeldung ist ziemlich eindeutig: Ein Datensatz mit Deiner definierten Bedingung existiert offenbar nicht. Beschreibe Dein Problem genauer.

    MfG
    MarkX.

    1. Ja ist völlig logisch es soll ja auch der Fall überprüft werden das es den Datensatz nicht gibt.

      Das Problem ist das er

      if rs("id") = nummer then

      völlig Ignoriert

      sieht man ja an der Ausgabe

      ?=?5

      nichts ist nicht gleich 5

      Mit freundlichen Grüßen Desert