leeren Datensatz abfangen
Peter U.
- datenbank
Hallo Leute.
Ich habe unten eine (stark gekürzte) ASP Seite stehen, die zwei Datenbanken abfragt und die Ergebnisse als Tabelle ausgibt (bzw. ausgeben soll). Mein Problem ist jetzt, dass ich nicht weiss ob die Auftragsnummer in Datenbank 1 oder in db2 steht. Also muss ich beide Datenbanken abfragen. Wenn jetzt aber in der ersten Datenbank nichts gefunden wird, kommt folgende Fehlermeldung:
ADODB.Recordset-Fehler '800a0bcd'
Entweder BOF oder EOF ist True, oder der aktuelle Datensatz wurde gelöscht; die von der Anwendung angeforderte Operation benötigt einen aktuellen Datensatz.
und das Script wird beendet.
Wie kann ich das abfangen? Ich hab' schon versucht IF rs.BOF <> rs.EOF vor die Ausgabe (also vor die DO...WHILE Schleife) zu schreiben, aber das war natürlich nix.
Ich hoffe ihr könnt mir helfen.
Ciao, Peter.
-----------------------------------------------------------------------------------
<html><body>
<table>
<%
abfrage "structura NOVA", "PPS5C", "64-KP53169A"
abfrage "Berlin", "PPSas61", "64-KP53169A"
%>
</table>
</body></html>
<%
sub abfrage(odbc, db, auftnr)
sql = "SELECT * FROM " & db & ".AUFTRAG AUFTRAG WHERE AUFTRAG.AUFTRNR='" & auftrnr & "'
set conn = server.CreateObject("ADODB.Connection")
conn.open odbc
set rs = conn.execute(sql)
rs.MoveFirst
DO WHILE NOT rs.EOF
response.write"<tr>"
response.write "<td>"
response.write rs.Fields("ARTIKEL.ARTTEILNR")
response.write "</td>"
response.write "</tr>"
rs.MoveNext
LOOP
rs.close
set rs=nothing
conn.close
set conn=nothing
end sub
%>
-----------------------------------------------------------------------------------
Tach auch.
Schreib einfach "IF NOT rs.EOF THEN rs.MoveFirst"
statt "rs.MoveFirst"
und es sollte funzen!
Stuessy
Hallo
Wie kann ich das abfangen? Ich hab' schon versucht IF rs.BOF <> rs.EOF vor die Ausgabe (also vor die DO...WHILE Schleife) zu schreiben, aber das war natürlich nix.
rs.BOF<> rs.EOF - häh? sind die nicht sowieso immer unterschiedlich ?
Aber probier einfach mal vor der ganzen do while geschichte:
If NOT(rs.BOF or rs.EOF) Then
sollte eigentlich tun.
Achtung: das if muss auch vor dem rs.MoveFirst stehen, da du sonst im falle von BOF den gleichen fehler bekommst.
have fun, Eeye