tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
975
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Jerinca
    Jerinca Jerinca ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    109
    Hallo!

    Ich hab' folgendes Problem: Habe eine ASP-Seite, die in mehreren Formularen aus mehreren Abfragen mehrere Datensätze auslesen soll.

    Nun bekomme ich beim Aufruf dieser Seite immer diese Fehlermeldung:
    "Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record."

    Kennen wir ja

    Ich denke, es liegt daran, daß manche der Abfragen kein Ergebnis zurückbringen (also kein Datensatz auf die Abfrage paßt). Das kann durchaus vorkommen, ist ja aber kein Problem In diesem Fall soll eben nur die Überschrift, aber eben keine Datensätze angezeigt werden.

    Wie schaffe ich es, dem Programm zu sagen, daß es die Seite trotzdem anzeigen soll, auch wenn bei der einen oder anderen Abfrage (wir erinnern uns: es gibt mehere Abfragen in mehreren Formularen) kein Ergebnis rauskommt

    Vielen Dank schonmal für Eure Mühen!

    CU, Jerinca
     

  2. #2
    Registriert seit
    Aug 2003
    Ort
    Arnsberg, Germany, Germany
    Beiträge
    1.066
    Hallo

    Du kannst das Recordset auf eof (end of file) oder bof (beginn of file) abfragen

    <%
    if rs.eof then
    ' -- anzeigen, wenn kein Ergebnis vorliegt
    else
    ' -- Datensätze anzeigen
    end if
    %>
     
    liebe Grüße, die Luzie

  3. #3
    Avatar von Jerinca
    Jerinca Jerinca ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    109
    Hallo Luzie!

    Danke erstmal für Deinen Vorschlag

    Aber zu meinem Beschämen muß ich sagen, daß ich bis jetzt immer mit den Dreamweaver Editoren gearbeitet habe, denn die machen das meiste für mich Damit alle Datensätze angezeigt werden, die auf eine Abfrage zutreffen, steht da:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    <% 
    while ((Repeat1__numRows-- != 0) && (!RecordsetReparatur.EOF)) { 
    %>
     
    dann der Teil, der wiederholt werden soll
     
    <%
    Repeat1__index++;
    RecordsetReparatur.MoveNext();
    }
    %>

    Meinst Du, ich sollte jetzt vor dieses WHILE noch ein IF einfügen?

    Vielen Dank schonmal (wieder)!

    P.S.: Ich programmiere übrigens in JavaScript, falls Dir das was nützt...
     

  4. #4
    Registriert seit
    Aug 2003
    Ort
    Arnsberg, Germany, Germany
    Beiträge
    1.066
    Hallo

    da gibt im Dreamweaver Serververhalten eine Option
    Bereich anzeigen, wenn...

    Ich denke mal, dass sollte Dir helfen.
     
    liebe Grüße, die Luzie

  5. #5
    Avatar von Jerinca
    Jerinca Jerinca ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    109
    Ach Luzie!

    Du bist ein Schatz

    Es funktioniert! Auf dieses Serververhalten bin ich noch gar nicht gekommen!

    Vielen, vielen Dank, daß Du schon so früh so wach im Kopf bist und mir eine positive Antwort geben konntest!

    CU, Jerinca
     

  6. #6
    Avatar von Jerinca
    Jerinca Jerinca ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    109
    Hallo nochmal!

    Habe doch noch eine Frage... Folgendes habe ich auf einer Website gelesen:

    Verborgene Bereiche dürfen wiederholte Bereiche nicht überlappen.
    Bedeutet das in meinem Fall (siehe oben), daß es nicht möglich ist, diese beiden Serververhalten zu kombinieren?

    Denn das tue ich:

    Ich habe einen Tabellenbereich, den ich durch das Serververhalten "Bereich wiederholen" dazu bringe, alle Datensätze auszugeben, die auf eine Abfrage zutreffen.

    Dann habe ich auf den selben Bereich das Serververhalten "Bereich anzeigen, wenn Datensatzgruppe nicht leer ist" angewendet, mit dem Ziel, daß der Bereich nicht angezeigt wird, sollte die Abfrage kein Ergebnis bringen.

    Zur Erläuterung: Bevor ich das so gemacht habe, konnte die Seite gar nicht angezeigt werden, wenn die Abfrage kein Ergebnis brachte (-> Fehlermeldung).

    Das auf der Site angezeigte Ergebnis stimmt aber trotzdem noch nicht, also muß irgendwas falsch an den Einstellungen sein. Das obige Zitat hat mich dann auf den Gedanken gebracht, daß das der Grund sein könnte...

    Kann mir jemand diese Frage beantworten?

    Danke schonmal!
     

  7. #7
    Registriert seit
    Aug 2003
    Ort
    Arnsberg, Germany, Germany
    Beiträge
    1.066
    Das ist insofern schon richtig, das Zitat.

    Der Dreamweaver erstellt meines Wissens für die entsprechenden Bereiche jeweils eine Abfrage. Er verschachtelt sie nicht in einer else-Verzweigung. Wenn die Verhalten klar und deutlich auf die entsprechenden Bereich gelegt worden sind, zeigt er auch immer nur den entsprechenden Bereich an, niemals beide.

    Im Prinzip geht das so

    Recordset erstellen
    Recordset öffnen

    if Recordset.eof then
    ' --- hier kann dann z.B. eine Text oder eine Tabelle hinein, welche angezeigt werden soll, wenn kein Datensatz gefunden wird. Dies ergibt sich einfach aus der Abfrage auf eof heraus.

    end if

    if not Recordset.eof then

    ' -- hier kannst Du dann die Tabelle mit Bereich Wiederholen einfügen

    end if

    Recordset schließen

    Diese Bereiche anzeigen wenn... müssen sich im geöffneten Recordset befinden.

    Der Einfachheit halber würde ich das in 2 Tabellen platzen. Jeweils markieren und die Verhalten drauf legen. Wie gesaagt, es kann nur immer eines angezeigt werden.

    Schau in den Quelltext, da wirst Du die Bereich auch sehen. JS generierte Abfragen sind etwas anders, aber man wird das schon erkennen.
     
    liebe Grüße, die Luzie

  8. #8
    Avatar von Jerinca
    Jerinca Jerinca ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    109
    Danke für Deine Antwort - Du nimmst Dir ja wirklich Zeit!

    Aber trotzdem: WOW! Dann wird das ja ewig viel Quellcode (dazu muß ich sagen, daß ich 3 nebeneinander stehende Formulare mit jeweils einer sich wiederholenden Tabelle drin habe)...

    Ich kapier' das net! Warum kann man denn nicht schreiben:
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    IF (Abfrage bringt Ergebnisse) {
    WHILE (Datensätze vorhanden, also EOF noch nicht erreicht) {
    Wiederholungs-Teil
    }
    }
    ELSE // also wenn die Abfrage keine Ergebnisse bringt
    {zeig' meinetwegen eine Meldung an}
    Das sieht doch vom Prinzip her logisch aus, finde ich

    Naja, da hab' ich mir was eingebrockt, wenn ich jetzt wirklich statt drei 6 Tabellen machen muß... Toller Programmierstil

    Danke schonmal wieder...

    Gruß, Jerinca
     

  9. #9
    Registriert seit
    Aug 2003
    Ort
    Arnsberg, Germany, Germany
    Beiträge
    1.066
    Hi

    der Dreamweaver produziert fast immer ne Menge Quellcode, gerade was den ASP-Bereich anbetrifft, meiner Meinung auch machmal unnützes Zeug. Aber greift man händisch in den Code ein, funktionierten die Verhalten oft nicht mehr. Möglich ist das alles.

    Für viele halt eine Methode, dyn. Webseiten per Mausklick zu erzeugen, wenn man sich nicht mit komplizierten Programmiertechniken beschäftigen möchte.

    Aber der Programmcode von der Stange hat einmal ein Ende bzw. seine Grenze, es sind wirklich nur Grundlagenverhalten möglich.

    Wenn Du es anders haben möchtest, kommst Du nicht drumrum, Dich mit der Scriptsprache Deiner Wahl zu beschäftigen, ist eben so
     
    liebe Grüße, die Luzie

Ähnliche Themen

  1. Kein Kleinunternehmer und trotzdem EUR und Umsatzsteuerbefreit?
    Von soylachica im Forum Gründung & Gewerbe
    Antworten: 1
    Letzter Beitrag: 06.04.10, 07:53
  2. Antworten: 5
    Letzter Beitrag: 28.04.05, 14:08
  3. Antworten: 2
    Letzter Beitrag: 23.10.03, 16:45
  4. Antworten: 5
    Letzter Beitrag: 26.11.02, 21:42
  5. Keine dateien trotzdem Homepage?
    Von biggi@aodt im Forum Hosting & Webserver
    Antworten: 2
    Letzter Beitrag: 11.04.02, 10:00