Jag ska ta bort en order genom att kolla på fakturanr Kolla vad ditt fakturanummer är, troligtvis är det text och du försöker att ta bort ett tal. Om det är av typen text i databasen så ska du ha "enkelfnuttar" runt den, sql-satsen blir alltså: mm, det jag tänker på är också att man inte ska kunna skicka in tomma strängar till SQL satsen, jag har själv gjort den tabben med påföljd att tre månaders jobb raderades från databasen.ta bort
Microsoft JET Database Engine error '80040e07'
Data type mismatch in criteria expression.
/telemedia/admin/order_del.asp, line 5
<!-- #Include file="dbcon.asp"-->
<%
If Request.Querystring("del")="yes" Then
strSQL = "DELETE FROM privatbestallning WHERE fakturanr =" & Request.querystring("id")
Connect.Execute strSQL,,128
Response.redirect "order.asp"
End If
Connect.Close
Set Connect=Nothing
%>Sv: ta bort
Sen borde du göra en kontroll på vad du skickar in så att ingen kan radera allt.
//Anna-KarinSv: ta bort
<code>
strSQL = "DELETE FROM privatbestallning WHERE fakturanr = '" & Request.querystring("id") & "'"
</code>
Och med kontroll menar hon antagligen att du måste kolla så att ingen försöker använda sig av SQL-injections, du kan tänka själv vad som händer om någon ändrar din querystring så att det står "minsida.asp?id=0' OR 1=1--"
Då kommer sql-satsen se ut såhär: strSQL = "DELETE FROM privatbestallning WHERE fakturanr = '0' OR 1=1". Detta kommer ta bort alla poster där fakturanr = '0' eller om 1=1 (som alltid kommer gälla), detta resultar i att alla poster kommer att tas bort.
/MickeSv: ta bort
Om Querystringen är tom så smäller SQL satsen och man möts av ett felmeddelande, därför brukar jag alltid stoppa in Querystringen i en variabel och kolla om den är tom eller inte, är den tom skicka tillbaka användaren och meddela att inget ID fanns, annars radera posten.
//Anna-Karin