ASP spinnt...

Diskutiere ASP spinnt... im Web & Grafik Forum im Bereich Internet & Telekomunikation Forum; Ich bin am Verzweifeln...da programmiert man den ganzen Datenbankzugriff in ASP, und an ein paar dummen Zeilen soll es scheitern: folgende...
  • ASP spinnt... Beitrag #1
T

TT

Bekanntes Mitglied
Dabei seit
19.07.1999
Beiträge
3.789
Reaktionspunkte
0
Ort
einer anderen Welt
Ich bin am Verzweifeln...da programmiert man den ganzen Datenbankzugriff in ASP, und an ein paar dummen Zeilen soll es scheitern:

folgende Zeilen:

Code:
<%
...
if not rs2.EOF and not rs2.BOF then
rs2.moveFirst
Do until rs2.EOF
  if rs2("Bemerkung") <> "" then
%>
<img src="images/point.gif"><%=rs2("Bemerkung")%><BR>
<%End If%>
<%rs2.MoveNext
LOOP
...
%>

rs2 ist der Recordset einer Datenbank (der wird auch richtig geholt!).
Das Problem ist die if-Abfrage. Sinn sollte sein, daß falls kein Text in Bemerkung steht auch kein Symbol vorher ausgegeben wird. Das klappt auch, allerdings wird dann die Bemerkung nicht ausgegeben. Entfernt man die If-Abfrage, wird die Bemerkung ausgegeben, allerdings auch das Symbol, sollte diese keinen Text enthalten.

Dises Problem geht mir einfach nicht ein.

TT

P.S.: Ich habe es mittlerweile anders gelöst, indem ich im SQL-Statement alle leeren Bemerkungen schon ausschließe, dennoch würde mich interessieren, was an obriger Lösung falsch läuft.
 
  • ASP spinnt... Beitrag #2
Siege

Siege

Bekanntes Mitglied
Dabei seit
04.03.1999
Beiträge
707
Reaktionspunkte
0
Ort
HAJ
Salve, ich kenn mich mit ASP leider ger nicht aus, und kann nur meinen allgemeinen senf dzugeben:
Wenn ich mir das so ansehe scheint mir das %> nach dem then irgendwie komisch.
Desweiteren scheint's mir ein bißchen unsinnig, daß Du die Bemerkung ausgeben willst, obwohl sie nicht da ist. Ich gehe davon aus, daß Du immer Symbol und Bemerkung als Paket oder falls die Bemerkung leer ist, nichts ausgeben willst. Ist das LOOP sowas wie ein "End DO"?


if not rs2.EOF and not rs2.BOF
then rs2.moveFirst

Do until rs2.EOF

if rs2("Bemerkung") <> "" then%>

<img src="images/point.gif"><%=rs2("Bemerkung")%> <BR>

<%End If%>

<%rs2.MoveNext
LOOP
...
%>
 
  • ASP spinnt... Beitrag #3
S

SPQR

Aktives Mitglied
Dabei seit
08.11.2000
Beiträge
25
Reaktionspunkte
0
ich versuch dich mal auf dem Pfad der Erleuchtung zu bringen :D :

1. Warum machst du rs2.MoveFirst? Du solltest dich eigentlich immer am Anfang des RecordSets befinden. Wenn es auch anders geht, muss du meine Unwissenheit entschuldigen.
2. Die Schleife würde ich anders machen
3. statt rs2("Bemerkung") kannst du auch rs2.Fields("Bemerkung").Value schreiben
4. Sind Null-Werte für die Tabelle erlaubt? Hoffentlich nicht, besser mit "" (leeren String) vorinitialisieren.
5. Zur Sicherheit kann man bei der if-Abfrage auch ""&rs("Bemerkung") <> "" sagen.
6. Die if-Abfrage sieht korrekt aus ..?

@Siege: Das %> ist schon korrekt! So ist eben ASP, wenn man im HTML-Code ASP-Befehle verwendet


So könnte dein Programmcode aussehen:
Code:
<%
  while not rs2.EOF
    if ""&rs("Bemerkung") <> "" then
      ' Konkatenation des Strings, um Kontextswitching zu vermeiden
      ' Anführungszeichen müssen geqoutet werden, daher "", um als Ausgabe " zu haben!
      Response.Write "<img src=""/images/point.gif"">" & rs2("Bemerkung") & "<br>"
    end if

    rs2.MoveNext
  wend
%>


ich hoffe, dass dir das weiterhilft. Poste mal, ob das funktioniert hat...
 
  • ASP spinnt... Beitrag #4
T

TT

Bekanntes Mitglied
Dabei seit
19.07.1999
Beiträge
3.789
Reaktionspunkte
0
Ort
einer anderen Welt
@Siege:
das %> nach dem then hat schon seine Richtigkeit. Hier wechsle ich von ASP wieder auf HTML. Das war auch nie das Problem (eine Schleif weiter oben funktioniert das auch tadellos).
Do...Loop ist vom VB, wie man diesem kleinen Source schon anmerken kann, lehnt ASP sich sehr stark an VB an bzw. ist eigentlich sogar VB Serverseitig.

@SPQR:
rs2.MoveFirst ist sogar zwingend notwendig. Wenn man frisch einen Select-Befehl per SQL ausführt, erhält man alle Recordsets in der angegebenen Variable (hier rs2) zurück. Der Zeiger hingegen steht aber auf NIL, das heißt, es ist kein aktueller Record ausgewählt.

Nullwerte sind nicht erlaubt, default ist "". Das war bereits eingestellt (und speichert auch das Frontend zum Bearbeiten der Daten extra nochmal als "" ab).

Ansich sollte ja die Abfrage <>"" sein, ist nur schlecht zu lesen.

Die Schleife wird eigentlich auch korrekt ausgeführt, das Symbol wird ja auch gezeichnet, nur die Ausgabe von rs2("Bemerkung") fehlt. Auch das <br> wird angefügt.
Mit Response.Write habe ich es auch schon versucht, brachte auch keine Besserung.

:confused:

Am Code selbst dürfte nichts Falsch sein, vorallem, wenn man bedenkt, daß er ein paar Zeilen weiter oben genauso (nur rs1 und eine andere Tabelle) funktioniert.
mit rs2.Fields("Bemerkung").Value werde ich es noch probieren.
Aber ich schiebe das Problem mal auf den IIS, der hat bei uns sowieso einen Knall :D

Naja, da er nur eine Spalte aus der Tabelle braucht, kann man hier per SQL selectieren, ist eigentlich sogar schneller, da die if-Abfrage mehr CPU-Zeit braucht.

TT
 
  • ASP spinnt... Beitrag #5
S

SPQR

Aktives Mitglied
Dabei seit
08.11.2000
Beiträge
25
Reaktionspunkte
0
@TT

Na, da möchte ich doch mal wissen, wie du dir den Recordset holst. Würde das nämlich zutreffen, was du schreibst, müssten wir unser WebProject umschreiben, da wir den MoveFirst-Befehl bisher nie gebraucht haben....

Die Idee, in der SQL-Anweisung bereits zu selektieren ist natürlich besser. Hab leider den Wald vor lauter Bäumen nicht gesehen... <IMG SRC="sleep.gif" border="0">
 
  • ASP spinnt... Beitrag #6
T

TT

Bekanntes Mitglied
Dabei seit
19.07.1999
Beiträge
3.789
Reaktionspunkte
0
Ort
einer anderen Welt
schreibe ich Dir, wenn ich meinen Urlaub beendet habe (da ich den Source hier nicht habe). Aber es kommt auch darauf an, von wo man sich den Datensatz holt (Oracle, SQL-Server, Access, Dbase, Excel....und was es da noch so an Perversionen gibt. :D)

TT
 
  • ASP spinnt... Beitrag #7
S

SPQR

Aktives Mitglied
Dabei seit
08.11.2000
Beiträge
25
Reaktionspunkte
0
<IMG SRC="betrunken.gif" border="0"> ahhhhhhhh !!!!!

Wir benutzen den SQL-Server bzw. SQL2000 von Microsoft.........
 
Thema:

ASP spinnt...

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben