Löschem mir SQL Befehl: keine Error geht aber trotzdem nicht
Nils Gerken
- asp.net
0 Nils Gerken0 Holger Lersch0 Uwe Nohl
Hi Gemeinde,
ich finde in diesem Code keinen Fehler, aber das löschen geht nicht, obwohl der IE keine Fehlermeldung auspuckt. Zum Script und zur Datenbank. In der datenkank werden Ip Adressen gespeichert (Feld hat Eigenschaft Memo. Ip Adresse steht dann so in der DAtenbank 127.0.0.1)
Wenn man nun diese Seite öffnet und derzeit eine IP Adresse benutzt, die in der Datenbank steht, soll sie in der Datenbank geköscht werden und zwar mit diesem Befehl:
<%
Dim conn,rs,dsn,sql,sql2,ips
ips = Request.ServerVariables("REMOTE_ADDR")
dsn="DBQ=" & Server.Mappath("../database/taggeckos.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("adodb.connection")
set rs=server.createobject("adodb.recordset")
sql = "Select * from login"
conn.open dsn
rs.open sql,conn
sql2="delete from login where ip= '&ips&' "
conn.execute(sql2)
rs.close
set rs=nothing
%>
Ich habe auch schon den Delete Befehl in dieser Variante ausprobiert:
sql2="delete from login where ip=" &ips
Dann kommt aber dieser Fehler:
Microsoft OLE DB Provider for ODBC Drivers-Fehler '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntaxfehler in Zahl in Abfrageausdruck 'ip=127.0.0.1'.
/eigene/NewVersion/admin/test.asp, Zeile 11
Ich weiß echt nicht mehr weiter :-((
Ich hoffe ihr habt ne Lösung.
Ciao Nils
Hi ich nochmal,
wenn ich direkt die IP Adresse eingeben klappt alles:
sql2="delete from login where ip= '127.0.0.1'"
Sezte ich jedoch wieder die Variable ein, klappt es wieder nicht.
Was ist das???
Ciao Nils
Na Nils,
nachdem du mich per mail über ein neues Posting informiert hast, werde ich jetzt mal sehn was ich für dich tun kann ;-).
[Microsoft][ODBC Microsoft Access Driver] Syntaxfehler in Zahl in Abfrageausdruck 'ip=127.0.0.1'.
Na dann schau dir diese Fehlermeldung doch mal genau an ? Steht in der Spalte ip in deiner
db wirklich "ip=127.0.0.1" drin oder vielleicht nur "127.0.0.1" ? ich wette letzteres !
»» sql2="delete from login where ip= '&ips&' "
Du musst dir dein sql "string-stückchen-weise" zusammenaddieren, variable teile deines sqls ausserhalb
von den doublequotes, feste teile innerhalb der doublequotes.
Also funktionieren sollte : sql="delete from login where ip='" & ips & "'"
diese string-zusammen-addition sollte folgendes sql ausgeben :
delete from login where ip='127.0.0.1' und das sollte es tun.
Prinzip des SQL-Statement-zusammenaddieren verstanden ?
Gruß
Holger
ich finde in diesem Code keinen Fehler, aber das löschen geht nicht
sql2="delete from login where ip= '&ips&' "
Hallo Nils,
probiere mal
sql2="delete from login where ip = '" & ips & "'"
so wie Du es gemacht hast, sucht er nämlich &ips& !
Gruss
Uwe Nohl