webForumDet fria alternativet
Logga in / Bli medlem

SQL problem

ASP

12 svar · 1 710 visningar · startad av n1kke

Medlem sedan aug. 200634 inlägg
Frågan#1

<%
If Request.QueryString("doit") = "gbadd" Then

gbAlias = Session("user")
gbAliasId = Session("id")
gbMess = Request.Form("gbMess")
gbId = Request.QueryString("id")
gbDate = FormatDateTime(Now,2)
If len(gbMess)\> 0 Then

	Conn.execute("Insert into panda_gb (gbAlias,gbAliasId,gbMess,gbId,gbDate) Values('" & gbAlias & "','" & gbAliasId & "','" & gbMess & "','" & gbId & "','" & gbDate & "')")
	response.redirect "default.asp"
else
	response.write "\<script\> alert('fel fel fel'); \</script\>"
End if

End if
%>

					\<% if Session("user") = "" THEN
					Response.Redirect("default.asp")
					else %\>
					\<form method="post" action="gb.asp?doit=gbadd"\>
					  \<textarea name="gbMess"\>\</textarea\>
                      \<br\>
                      \<input name="submit2" type="submit" class="submit style14" value=" Skicka "\>
					\</form\>
					\<% 

					sql = "select \* from panda_gb where gbId=" & request.QueryString("id")
					Set rs = conn.execute(SQL)
					while not rs.eof
						Response.write Rs("gbAlias") & Rs("gbAliasId") & "\<br\>" & Rs("gbMess") & "\<br\>\<br\>"
						rs.movenext
					wend
					Rs.Close

end if
%>

får fel på rad 32 vilket är

Set rs = conn.execute(SQL)

Medlem sedan dec. 200012 464 inlägg
#2

använd [ kod ] [ /kod ] (utan blanka) runt koden

indentera koden

ange vilket felmeddelande du får

Medlem sedan aug. 20011 087 inlägg
#3

testa
sql = "select * from panda_gb where gbId="' & request.QueryString("id") & "'"

Medlem sedan jan. 20022 440 inlägg
#4

ConnyFox skrev:

testa
sql = "select * from panda_gb where gbId="' & request.QueryString("id") & "'"

Det är inte lösningen eftersom det med största säkerhet är ett tal som är id ska det vara = " & request.QueryString("id").

Det LarsG menar är att det ska se ut såhär när du postar din fråga

<%
If Request.QueryString("doit") = "gbadd" Then

	gbAlias = Session("user")
	gbAliasId = Session("id")
	gbMess = Request.Form("gbMess")
	gbId = Request.QueryString("id")
	gbDate = FormatDateTime(Now,2)
	
	If len(gbMess)> 0 Then
		Conn.execute("Insert into panda_gb (gbAlias,gbAliasId,gbMess,gbId,gbDate) " _
		& "Values('" & gbAlias & "','" & gbAliasId & "','" & gbMess & "','" & gbId & "','" & gbDate & "')")
		
		response.redirect "default.asp"
	else
		response.write "<script> alert('fel fel fel'); </script>"
	End if
End if

if Session("user") = "" THEN
	Response.Redirect("default.asp")
else 
%>
	<form method="post" action="gb.asp?doit=gbadd">
		<textarea name="gbMess"></textarea>
			<br>
		<input name="submit2" type="submit" class="submit style14" value=" Skicka ">
	</form>	
<%
	sql = "select * from panda_gb where gbId=" & request.QueryString("id") & " "
	Set rs = conn.execute(SQL)
	
	while not rs.eof
		Response.write Rs("gbAlias") & Rs("gbAliasId") & "<br>" & Rs("gbMess") & "<br><br>"
	rs.movenext
	wend
	
	Rs.Close
end if
%>

Skriv som sagt vad du får för felmeddelande och testa skriva ut din fråga eller ställa den i din databas hanterare.

Response.Write(sql)

Medlem sedan juni 20003 076 inlägg
#5
sql = "select * from panda_gb where gbId=" & request.QueryString("id") & " "
Set rs = conn.execute(SQL)

Är conn skapat? det syns inte i din kod.

(ett tips till: fuska inte med stora och små bokstäver som ovan då du först anger sql och sedan SQL) :)

Medlem sedan aug. 200634 inlägg
#6

har conn via connect.asp som inkluderas på varje sida så det är därför den inte står med

Medlem sedan juni 2002256 inlägg
#7
sql = "select * from panda_gb where gbId=" & CInt(request.QueryString("id"))

?

Medlem sedan nov. 20014 054 inlägg
#8

Du skall nog också kolla så att request.QueryString("id") innehåller ett värde som är numeriskt. Så det inte blir en massa tjafs när annat sätts in i urlen.

Medlem sedan mars 20041 505 inlägg
#9

doggelito skrev:

sql = "select * from panda_gb where gbId=" & request.QueryString("id") & " "

Varför lägger du till en sträng med ett mellanrum på slutet? ;)

Som sagt, kontrollera först att id är ett nummer med hjälp av funktionen isNumeric.
Sedan kan du typkonvertera med hjälp av cInt om du vill, men det behövs egentligen inte.
Men det blir nog ännu lättare om du postar ditt felmeddelande istället! :i

Medlem sedan aug. 200634 inlägg
#10

sql = "select * from panda_gb where gbId=" & request.QueryString("id") står det iofs

Medlem sedan aug. 200634 inlägg
#11

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/preview/gb.asp, line 31

rad 31
Set rs = conn.execute(SQL)

Medlem sedan mars 20041 505 inlägg
#12

Gör en utskrift av strängen sql och posta resultatet här.

response.write sql
response.end
Medlem sedan juni 2002256 inlägg
#13

När skapar du Conn-objektet? Har du den i en annan fil, så kontrollera att du har inkluderat den i dokumentet.

290 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
136 ms — deklarationer (db)
0 ms — hämta statistik (cache)
149 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)