webForumDet fria alternativet

Idvärde

4 svar · 208 visningar · startad av AG

AGMedlem sedan mars 20001 266 inlägg
#1

Får ett idvärde via querystring. Detta jämförs mot en sqldata.

id = request("id")
"select * from [tabell] where id = " & id & " "

Problemet är då ifall det sker ett undantag, tex id-värdet består av bokstäver tex "abc123". Då skrivs endel av sqlsatsen ut i form av ett error, detta vill jag undvika.

Hur gör man bäst för att undvika såda fel, uppstår ju oftast i samband med sqlsatser.

Andreas

ampyMedlem sedan feb. 20011 498 inlägg
#2

Du kan t ex kolla om id bara innehåller siffror med hjälp av IsNumeric-funktionen:

if isnumeric(id) = true then
'innehåller bara siffror
else
'innehåller andra tecken än siffror
end if

Källa: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsfctisnumeric.asp

ObbelixMedlem sedan okt. 2002257 inlägg
#3

Borde väl bli nåt i stil med

id = request("id")
if IsNumeric(id) then
"select * from [tabell] where id = " & id
else
nåt annat.
end if
Engine^Medlem sedan dec. 20003 887 inlägg
#4

Är fältet id i databasen en sträng? Isånnafall ska ditt sqluttryck se ha med apostrofer runt id

"select * from [tabell] where id = '" & id & "'"

Om det bara ska tillåtas numeriska värden för id, så fungerar Obbelix metod alldeles utmärkt... om inte id råkar vara null förstås, då blir det väl andra bekymmer säkert ;)

AGMedlem sedan mars 20001 266 inlägg
#5

Id är av typen räknare och därför fungerar obelix exempel.
Tack

Andreas

296 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
132 ms — hämta forumlista (db)
162 ms — hämta statistik (db)
121 ms — hämta tråd, inlägg och bilagor (db)