webForumDet fria alternativet

delete querystring ?

10 svar · 249 visningar · startad av Pellefant

PellefantMedlem sedan maj 20023 372 inlägg
#1

Hej!

Har kört fast igen. :(

<%
Set Databas = Server.CreateObject("ADODB.Connection")
Databas.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("\kursbok\db\kurslitt.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")

RecSet.Open SQL, Databas, adOpenStatic, adLockOptimistic

a = Cint(Request.QueryString("idnummer"))
SQL="DELETE * FROM annonser WHERE id=a"
Databas.Execute(SQL)

RecSet.Close
Databas.Close
%>

Felmed:
Programmet använder felaktiga parametrar, som antingen ligger utanför tillåtet intervall, eller som skapar en inbördes konflikt.

Har även testat med Trim istället för Cint. "idnummer" syns uppe i url-fönstret.

kristofferMedlem sedan juni 20001 257 inlägg
#2

SQL="DELETE * FROM annonser WHERE id=" & a & ""

Jörgen HPMedlem sedan feb. 20012 412 inlägg
#3
<% 
Set Databas = Server.CreateObject("ADODB.Connection") 
Databas.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("\kursbok\db\kurslitt.mdb") 
Set RecSet = Server.CreateObject("ADODB.Recordset") 

RecSet.Open SQL, Databas, adOpenStatic, adLockOptimistic 

a = Request.QueryString("idnummer") 
SQL="DELETE FROM annonser WHERE id = " & a
Databas.Execute(SQL) 

RecSet.Close 
Databas.Close 
%>
Jörgen HPMedlem sedan feb. 20012 412 inlägg
#4

kristoffer skrev:

SQL="DELETE * FROM annonser WHERE id=" & a & ""

* får ej förekomma i en delete, den raderar ju alla kolumner hur som helst. ;)

kristofferMedlem sedan juni 20001 257 inlägg
#5

Ja, jag kollade inte så noga. Det var ju parametern jag tänkte på. Men ja, du har rätt.

PellefantMedlem sedan maj 20023 372 inlägg
#6

Och jag som trodde alla sov. ;-) webforum är fantastiskt. :)

Båda era lösninagr gav samma fel som innan. :( Men jag kom på att jag inte hade någon nytta av RecSet så jag tog bort de tre raderna som berör RecSet, så nu fungerar det. Tack ändå.

Såhär blev det:
<% Set Databas = Server.CreateObject("ADODB.Connection")
Databas.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("\kursbok\db\kurslitt.mdb")

a = Request.QueryString("idnummer")
SQL="DELETE * FROM annonser WHERE id=" & a & ""
Databas.Execute(SQL)

Databas.Close %>

PellefantMedlem sedan maj 20023 372 inlägg
#7

hm...läste era nya inlägg, ska ändra till:
SQL="DELETE FROM annonser WHERE id=" & a & ""

Tackar.

PellefantMedlem sedan maj 20023 372 inlägg
#8

Japp, funkar bra utan "*" också.

Tack.

Jörgen HPMedlem sedan feb. 20012 412 inlägg
#9

Du kan förkorta

SQL="DELETE FROM annonser WHERE id=" & a & ""

till

SQL="DELETE FROM annonser WHERE id=" & a

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#10

Det kan också vara vettigt att byta ut CInt mot CLng eftersom att du med CInt inte klarar av siffror större än 32 767...

@ndersMedlem sedan juni 200032 969 inlägg
#11

Lite OT: Om jag inte helt missminner mig kräver gamla versioner av Access (ex. v97) att man har med * i sin DELETE-sats.

Det är dock rätt att utelämna den, som Jörgen HP påpekade. Han är klok. ;)

Mvh,

134 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)