Just nu i M3-nätverket
Jump to content

Delete * funkar inte


Admini

Recommended Posts

Hej

Jag kommer hela tiden med märkliga problem, här kommer en till:

 

Får följande felmeddelande:

ADODB.Connection.1 (0x80004005)

SQLState: 4 Native Error Code: 1064 [TCX][MyODBC]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM veckofraga WHERE id= 31' at line 1

veckoadmin.asp, line 21

när jag försöker ta bort en post ur databasen så här:

Conn.Execute "DELETE * FROM veckofraga WHERE id= "& Request.QueryString("delId") &""

 

Jag förstår inte varför det inte funkar, för det har funkat förut.

 

Nån annan som ser felet?

Tack

 

Link to comment
Share on other sites

Prova:

 

Conn.Execute "DELETE * FROM veckofraga WHERE id= "& CLng(Request.QueryString("delId"))

 

Du kan även ta bort * - tecknet för du kan inte bara ta bort ett fält utan det blir hela posten som raderas.

 

Link to comment
Share on other sites

CLng kan man, kortfattat, säga gör om ett "uttryck till ett heltal"

Du försäkrar dig att det är ett tal som ingår.

 

Japp!

Conn.[color="#0000ff"]Execute[/color] ([GRÅ]"DELETE FROM veckofraga WHERE id= "[/GRÅ])& [color="#0000ff"]CLng[/color]([b]Request[/b].QueryString([GRÅ]"delId"[/GRÅ]))

 

EDIT: Lade till paranteser! Så ska du ha det!

 

EDIT2:

Kolla på: http://www.w3schools.com/

Där kan du söka på olika "konstiga" ord(t ex CLng) så står där en hel del om det. Väldigt bra sida!

 

[inlägget ändrat 2006-01-27 12:35:20 av Micke_skane]

[inlägget ändrat 2006-01-27 12:40:59 av Micke_skane]

Link to comment
Share on other sites

Det funkar bra nu med

Conn.Execute "DELETE FROM veckofraga WHERE id= "& Request.QueryString("delId") &""

 

Tack för hjälpen!

 

Link to comment
Share on other sites

Det var ju bra!

 

Gick det inte med:

Conn.[color="#0000ff"]Execute[/color] ([GRÅ]"DELETE FROM veckofraga WHERE id= "[/GRÅ])& [b]Request[/b].QueryString([GRÅ]"delId"[/GRÅ])

 

eller

Conn.[color="#0000ff"]Execute[/color] ([GRÅ]"DELETE FROM veckofraga WHERE id= "[/GRÅ])& [color="#0000ff"]CLng[/color]([b]Request[/b].QueryString([GRÅ]"delId"[/GRÅ]))

 

Tack för poängen!

 

Micke

 

[inlägget ändrat 2006-01-27 16:06:12 av Micke_skane]

Link to comment
Share on other sites

Magnus Ahlkvist

Clng är i det här fallet en total performance-buster. Det som händer är att man tar en sträng (dvs request.querystring("något") ) och omvandlar till ett långt heltal, för att sedan låta ASP implicit omvandla tillbaka till en sträng (Execute tar en sträng som parameter).

Vill man försäkra sig om att man verkligen skickar in ett heltal är det detta som gäller:

If IsNumeric(request.querystrig("något")) Then
Conn.Execute "DELETE FROM tabell where id=" & request.querystring("något")
Else
'Felhantering eftersom id inte är numeriskt
End

--

http://ahlkvist.blogspot.com <-- Min blogg, uppdateras emellanåt.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...