Variable aus einem Link übernehmen
Tom Kruse
- asp.net
0 Stefan Falz0 Tom Kruse0 Stefan Falz0 Tom
0 Calocybe
Hallo alle,
nach erfolgloser Suche im Archiv (knappe 2.000 Nachrichten), bin ich wieder mit einer Frage da.
Folgender Code in der Quell Page "archive.asp":
<a href="display_news.asp?newsid=<%=rs.Fields("ID")%>"><%=rs.Fields("Ueberschrift")%>
Folgender Code in der "Zielpage" display_news.asp:
<%Set conn = Server.CreateObject("ADODB.Connection")
conn.open "Lundbeck News"
SQL = "SELECT * FROM News where ID = 'newsid'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3
rs.MoveFirst
do while Not rs.eof
%>
<%=rs.Fields("Ueberschrift")%><%=rs.Fields("Datum")%>
usw.
Kurz: Der Link, der hinter der Überschrift steht, soll mit Übergabe der Variablen "newsid" auf die "Display_news.asp" verweisen. Die "display_news.asp" soll dann die Variable "newsid" übernehmen und diese ID dann in der angegebenen DB suchen und diese Tabelle ausgeben (mit dem FP eigenen Code entstehen keine Probleme). Wenn ich aber den Code wie beschrieben per Hand einfüge, bekomme ich folgende Fehlermeldung:
Microsoft OLE DB Provider for ODBC Drivers-Fehler '80040e07'
[Microsoft][ODBC Microsoft Access 97 -Treiber] Datentypen in Kriterienausdruck unverträglich.
/test/DB/display_news.asp, Zeile 18
Es soll kein neues Fenster geöffnet werden, kein neuer Frame - nur die Seite "display_news.asp" soll mit der richtigen ID Variablen geladen werden.
Vielleicht weiß einer von Euch Rat?
Besten Dank schon einmal
Tom
<%Set conn = Server.CreateObject("ADODB.Connection")
conn.open "Lundbeck News"
SQL = "SELECT * FROM News where ID = 'newsid'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3
Wenn ich aber den Code wie beschrieben per Hand einfüge, bekomme ich folgende Fehlermeldung:
Microsoft OLE DB Provider for ODBC Drivers-Fehler '80040e07'
[Microsoft][ODBC Microsoft Access 97 -Treiber] Datentypen in Kriterienausdruck unverträglich.
/test/DB/display_news.asp, Zeile 18
Hallo,
ich nehme an, das Feld ID in der Tabelle News ist numerisch.
Dann musst Du folgendermaßen abfragen:
<%
SQL = "SELECT * FROM News where ID = " & newsid
%>
Bei einem Textfeld wäre deine Abfrage aber auch falsch:
<%
SQL = "SELECT * FROM Text where Feld = '" & text & "'"
%>
Tschau, Stefan
Hi Stefan,
vielen Dank für Deine schnelle Hilfe.
Du hast recht, mein Feld ist ein numerisches Feld. Und zwar ein autonumerisches Feld von Access automatisch generiert.
Ich habe Deine Abfrage in meine Page kopiert. Allerdings ohne Erfolg. Ich bekam folgende Fehlermeldung:
Microsoft OLE DB Provider for ODBC Drivers-Fehler '80040e14'
[Microsoft][ODBC Microsoft Access 97 -Treiber] Syntaxfehler (fehlender Operator) in Abfrageausdruck 'ID ='.
/test/DB/display_news.asp, Zeile 18
Noch eine Ergänzug: In der Adresszeile meines Browsers wird folgende Adresse angezeigt: http://larry/test/DB/display_news.asp?newsid=134
Die ID aus der Datenbank wird "scheinbar ausgelesen".
Noch eine andere Idee ?
Tom
Microsoft OLE DB Provider for ODBC Drivers-Fehler '80040e14'
[Microsoft][ODBC Microsoft Access 97 -Treiber] Syntaxfehler (fehlender Operator) in Abfrageausdruck 'ID ='.
/test/DB/display_news.asp, Zeile 18Noch eine Ergänzug: In der Adresszeile meines Browsers wird folgende Adresse angezeigt: http://larry/test/DB/display_news.asp?newsid=134
Die ID aus der Datenbank wird "scheinbar ausgelesen".
Hallo,
du musst natürlich newsid noch besetzen.
<%
Dim newsid
newsid = Request("newsid")
...
' --- Hier kommt deine Abfrage hin
...
%>
Hallo Stefan,
danke danke danke danke danke danke etc. Es funzt.
Tom
Dim newsid
newsid = Request("newsid")
...
' --- Hier kommt deine Abfrage hin
...
%>
Hallo Tom
[...] (mit dem FP eigenen Code entstehen keine Probleme). Wenn ich aber den Code wie beschrieben per Hand einfüge, [..]
Nachdem Dein Problem ja nun geloest ist, mal noch ein Tip fuer die Zukunft: Warum schaust Du Dir nicht einfach den FP-Code an und analysierst, wie die es gemacht haben? Die Unterschiede zu Deinem sollten sich schnell offenbaren.
So lange
Hallo Calocybe,
hab ich gemacht und werde ich immer machen. Leider offenbaren sich die Unterschiede nur schwer, da es in den meisten Fällen doch ziehmliche Differenzen gib. Sei es ein Komma oder eine andere Anordnung des Codes oder sonstiges.
FP generiert einen Code für sich. So ist der Code um ein Feld in einer Tabelle auszugeben: <%=FP_FieldVal(fp_rs,"ID")%>.
Der gleiche Code, den ich per Hand einpflege: <%=rs.Fields("ID")%>.
Meistens genügt allerdings ein Denkanstoß. Allerdings ist für mich als Laien noch viel zu lernen. So z. B. wußte ich nichts über den Befehl:
Dim newsid
newsid = Request("newsid")
um in meinem Fall eine Variable an eine andere Abfrage zu übergeben.
Aber ich übe und lerne....
Trotzdem danke für Eure Hilfe !!!!
Tom