webForumDet fria alternativet

Efter sparandet blir databasen tomt.

ASP

5 svar · 431 visningar · startad av SGuncel

Medlem sedan jan. 2007217 inlägg
Frågan#1

Hej!

Jag försöker uppdatera veckans luncher och när jag gör det blir databasen helt tomt.
T.ex. om det står:
Måndag:
lax med potatis, dill

Och när jag har ändrat det till "kycklingfilé med pommes" Så står det inte
Måndag:
kycklingfilé med pommes

istället blir det
Måndag:
(Tomt i databasen, hittar inget och skriva ut)

Se här ser det ut när jag skriver ut min SQLsats:

UPDATE Luncher SET Luncher='' WHERE LunchId =2
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Ny sida 1</title>

<script LANGUAGE="JavaScript" TYPE="text/javascript">
function popUpMessage(strText, strRedirect)
{
    alert(strText);   
    if (strRedirect != '') 
        self.location = strRedirect;
}
</script>
</head>

<body>
<%
Set ObjConn = Server.CreateObject("ADODB.Connection") 
ObjConn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("....")

Set ObjRS = ObjConn.Execute("Select * from Luncher where LunchId="&Request.Querystring("LunchId")&"")
			Response.Write"<strong>"& ObjRS("LunchDag") &"</strong> <br />"
		
			Response.Write "<textarea name=""Luncher"" rows=""5"" cols=""20"">"& ObjRS("Luncher") &"</textarea>"
			Response.Write "<p></p>"

	Response.Write "<a href=""?lunch=Edit&LunchId="& ObjRS("LunchId") &""">Ändra</a>"

	
	
	
IF Request.Querystring("lunch")="Edit" then

ObjConn.Execute("UPDATE Luncher SET Luncher='"&Request.Form("Luncher")&"' WHERE LunchId ="& Request.Querystring("LunchId") & "")
%>
<script language="javascript" type="text/javascript">
popUpMessage('Du har nu ändrat lucnhen.', 'lunch.asp');
</script>
<%
	ObjConn.Close : Set ObjConn = Nothing
		End If
%>

</body>

</html>
Medlem sedan feb. 200112 078 inlägg
#2

Men du ser ju själv hur SQL-satsen ser ut. Kolumnen "Luncher" sätts ju till '', alltså blank sträng.

Medlem sedan jan. 2007217 inlägg
#3

Men när jag tar bort ' '
så får jag denna felet:
Microsoft JET Database Engine error '80040e14'

Syntax error in UPDATE statement.

/restaurang/admin/lunchEdit.asp, line 37

Medlem sedan apr. 20042 994 inlägg
#4

Jag skulle göra en sträng av hela UPDATE-satsen först, och sen köra ObjConn.Execute() på den strängen. Jag gissar att ObjConn.Execute() inte klarar av att ha variabler i anropet, även om jag inte är någon ASP-expert...

Medlem sedan jan. 2007217 inlägg
#5

Jag använder samma sql sträng på alla mina sidor när det gäller update.
Men jag förstår inte hur jag kunnat få denna fel :p

Medlem sedan feb. 200112 078 inlägg
#6

Fia skrev:

Jag skulle göra en sträng av hela UPDATE-satsen först, och sen köra ObjConn.Execute() på den strängen. Jag gissar att ObjConn.Execute() inte klarar av att ha variabler i anropet, även om jag inte är någon ASP-expert...

Det är inte problemet, den klarar det utmärkt. :)

Problemet är att du aktiverar själva lagringen av datat med en a href-länk, med ett par querystrings (Response.Write "<a href=""?lunch=Edit&LunchId="& ObjRS("LunchId") &""">Ändra</a>"), men försöker hämta data till din UPDATE-sats med Request.Form-objektet, som bara finns om du gör en POST (formulärpostning), inte vid GET (som vid din länk/querystring).

Du måste göra om a href'en till t.ex. en submit och sen lägga dina data för "lunch" och "LunchId" i hidden-formulär. Typ.

FÖrstår du vad jag menar?

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