Anfängerproblem mit delete und request.query

bigi_1

Grünschnabel
Hallo

Folgendes Scriptchen um einen Datensatz zu löschen :

<%
id = Request.QueryString("ID")

set eingabe = server.createobject("adodb.command")
eingabe.activeconnection = "dsn=xxxx;"
sql = "DELETE FROM tab_events WHERE event_id= id"
eingabe.commandtext = sql
eingabe.execute
%>


Die id welche ich aus der Url lese wird nicht in der Delete Abfrage erkannt.
Kann mir bitte jemand helfen?

Danke & Gruss bigi
 
Hi

kommt denn ein Fehler?
Lass Dir doch mal die Variable sql mit Response.write ausgeben.
 
Ja es kommt folgender Fehler :



Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.



Aber wenn ich die id mit einer vorhandenen Event-ID ersetze z.b. 75
ersetze funktioniert es...snief
 
Huhu

was sagt denn der sql string bei der Ausgabe?

Die Fehlermeldung ist ja eindeutig, es werden zu viele Parameter übergeben, erwartet wird einer. Also passiert es bei der Übergabe.
 
ach wenn ich nur die variable sql augebe kommt das :

DELETE FROM tab_events WHERE event_id= id


wenn ich es so schreibe, funktioniert es :

delete from tab_events where event_id= 75
 
Hi

sorry, ich bin die Blöde, ein ganz fataler Fehler und hätte mir gleich zu Anfang auffallen müssen. Etwas zuviel php heute :)

Wenn Du einen queryString in eine Variable speicherst und diese Variable im Delete-Statement nutzen willst, musst Du den SQL-String unterbrechen. Die SQL - Anweisung ist nur ein Text. Wenn dort Teile durch Variablen ersetzt werden müssen, dann passiert das wie folgt

sql = "delete from tabelle where id = " & id

sorry dafür, tztztz...
 

Neue Beiträge

Zurück