webForumDet fria alternativet

Fel i SQLsats

ASP

17 svar · 406 visningar · startad av Annakay

Medlem sedan sep. 2003143 inlägg
Frågan#1

Får helt ointetsägande felmeddelande:
Error Type:
(0x80040E07)
testsvar.asp, line 25
i min kod som ser ut så här:

---------------------------------------------
for each field in request.form
MySQL = "SELECT fldSvar FROM tblTestfrogor WHERE fldId = '"& field &"'"
Set RS = MyConn.Execute(MySQL) <------ Rad 25
next
---------------------------------------------

Tänkte om det var "field" i SQL-satsen som bråkade... Hur ska man annars anropa field från request.form? (Jag vill inte ha VÄRDET på field från request.form, bara själva objektes namn)

Medlem sedan mars 2003772 inlägg
#2

vad är fldID för datatyp? alltså kolumnen fldID ?

Medlem sedan juni 200032 967 inlägg
#3

Är fältet fldID av taltyp så ska du inte ha apostrofer runt värdet.

Vad är det för webbserver du använder som inte ger dig ordentliga felmeddelanden? Det är jättesvårt att felsöka utan ordentliga fel. :(

Mvh

Medlem sedan dec. 19998 577 inlägg
#4

När du kör alla fält så kommer du också få med knappar och annat som kanske inte skall in i databasen, gör en kontroll innan du skapar och SQL-satsen, kotrollera så att bora dom fält du vill ha med, kommer med. :)

Medlem sedan mars 2003772 inlägg
#5
MySQL = "SELECT fldSvar FROM tblTestfrogor WHERE fldId = " & field

Om fldID nu är av typen Tal

Medlem sedan sep. 2003143 inlägg
#6

fldId är av typen tal, provade med:

MySQL = "SELECT fldSvar FROM tblTestfrogor WHERE fldId = " & field

Men... fortfarande samma felmeddelande.. (Eller avsaknad av det...) Använder SQL Server förresten.

Skumt..

Medlem sedan mars 2003772 inlägg
#7

Ok men läs det Vide skrev ovan.

Medlem sedan sep. 2003143 inlägg
#8

Vide:

Jag har en kontroll, men jag valde att utelämna den just här. :)

Medlem sedan mars 2003772 inlägg
#9

Ok kan du visa koden så kanske det är lite lättare att se vad som är fel.

Medlem sedan sep. 2003143 inlägg
#10

Har provat att skriva ut allt som kommer i Request.form och det enda jag inte vill ha är knappen "skicka". Därför har jag koden:

if field <> "skicka" then

Fanken, det måste vara något jätteenkelt fel, det är det alltid när det verkar helt mysko... :)

Medlem sedan mars 2003772 inlägg
#11

Men om du använder dig av

for each field in request.form 
MySQL = "SELECT fldSvar FROM tblTestfrogor WHERE fldId = "& field

Så kommer den ju jämföra alla fält du fyllt i med kolumnen fldID ? Är alla fälten du fyller i enbart siffror då? Om du tex fyller i ett fält där du har andra tecken i så kommer den försöka jämföra en talkolumn med en string och det blir helt fel.

Medlem sedan sep. 2003143 inlägg
#12

HELA koden då...

for each field in request.form
if field <> "skicka" then

	'------------Hitta svaret till den aktuella frågan
	MySQL = "SELECT fldSvar FROM tblTestfrogor WHERE fldId = " & field 
	Set RS = MyConn.Execute(MySQL)

	

end if

next

Det som kommer i request.form är en massa kryssrutor som har värden som ska matchas i fldId, samt den där "skicka"-knappen...

Medlem sedan mars 2003772 inlägg
#13

och alla kryssrutornas värde är enbart TAL ? Alltså inga andra tecken?

Medlem sedan sep. 200350 inlägg
#14

Använd Cint(field) så att du är säker på att det tolkas som ett tal.

Medlem sedan sep. 2003143 inlägg
#15

Provade IGEN att bara loopa ut allt i Request.form och får endast en massa tal och "skicka"... Cint(field) gjorde ingen skillnad... Usch, börjar få blykeps...

Medlem sedan sep. 2003143 inlägg
#16

:) Det löste sig! Stängde ner allt och provade sedan igen... Funkade! Tror att datorn är lika trött som jag är...

Tack för hjälpen!

Medlem sedan sep. 200350 inlägg
#17

Så bra!
Hmm.. blykeps... hur ofta används det ordet?

Medlem sedan sep. 2003143 inlägg
#18

Blykeps... Ja du... När inget annat passar in? :)

259 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)