En updatesträng ser ut enligt följande:
strsql = "Update Tabell Set Kolumn1 = " & nytt_värde & ", " & _
"Kolumn2 = " & nytt_värde & " Where id_kolumn = " & id_värde & " ;"
20 svar · 433 visningar · startad av Alkvettern
Tjena!
Har fått hjärnsläpp.
Har skapat en "ändra sida" i asp. Där ska jag kunna gå in och ändra/lägga till inlägg.
Först listar jag alla poster som jag ska kunna editera.
För varje post i databasen finns en "ändra" knapp(SUBMIT).
Hur gör jag för att uppdatera databasen.
Har en kod som ser ut såhär:
<%strSQL = "UPDATE * INTO tbl_analys WHERE id = '"&request.form("ID")&"'"
Set oRS = oConn.Execute(strSQL)
%>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<% Response.redirect("visaanalys.asp")%>
Vad gör jag för fel?
En updatesträng ser ut enligt följande:
strsql = "Update Tabell Set Kolumn1 = " & nytt_värde & ", " & _
"Kolumn2 = " & nytt_värde & " Where id_kolumn = " & id_värde & " ;"
Funkar inte ändå.
Har nu skrivit in följande kod:
<%strSQL = "UPDATE tbl_analys SET rubrik = '"& Request.form("rubrik") &"' WHERE id = '"& request.form("ID") &"'"
Ange alltid felmeddelande.
Får man gissa på en type mismatch? I så fall:
strSQL = "UPDATE tbl_analys SET rubrik = '"& Request.form("rubrik") &"' WHERE id = "& request.form("ID")
Inga apostrofer runt värdet om datatypen på fältet är tal/räknare, vilket jag gissar att ID är.
Mvh,
Har provat igen
Skrev nu
strSQL="UPDATE tbl_analys SET rubrik = '"& Request.form("rubrik") &"' WHERE id = "& Request.form(id) &" "
Set oRS = oConn.Execute(strSQL)
<body>
<% Response.redirect("visaanalys.asp")%>
men får bara "The page cannot be displayed" och den
går inte vidare till visaanalys.asp
Det verkar som att du har Friendly Error Messages / Egna HTTP-felmeddelanden påslagna i din browser. Stäng av, och du får ordentliga felmeddelanden.
Mvh,
Då får jag felmeddelande:
Expecting string input
/alkvetternsik/changeanalys.asp, line 17
The function expects a string as input
Det här fungerar nog lite bättre:
strSQL="UPDATE tbl_analys SET rubrik = '"& Request.form("rubrik") &"' WHERE id = "& Request.form(id)
Set oRS = oConn.Execute(strSQL)
Vilken är rad 17?
Rad 17 är :
strSQL="UPDATE tbl_analys SET rubrik = '"& Request.form("rubrik") &"' WHERE ID = "& Request.form(id)
Ok. Jag tror du missuppfattade lite vad jag skrev förut om apostrofer och räknar- /talvärden.
strSQL="UPDATE tbl_analys SET rubrik = '"& Request.form("rubrik") &"' WHERE ID = "& Request.form[b]("id")[/b]
Du måste fortfarande i din Request använda citationstecken runt namnet på det formulärfält du vill hämta in.
Mvh,
Det är inte så att id är ett tal eller räknare. I sådana fall
strSQL="UPDATE tbl_analys SET rubrik = '"& Request.form("rubrik") &"' WHERE ID = ("& Request.form("id") &")"
Dino, varför har du lagt in en parentes runt värdet på ID?
strSQL="UPDATE tbl_analys SET rubrik = '"& Request.form("rubrik") &"' WHERE ID = "& Request.form("id") &""
ser inget annat fel! Forstod inte heller Dino's kod... kanske ratt, men forklara!
Fick lära mig att tal skulle vara inom parentes, men har senare fått reda på att det inte behövs. Men nu är det mest vana som gör att jag skriver på det sättet. Om det är rätt eller fel, det får någon annan avgöra.
Alkvettern, hittade du felet?
Det är inte fel, men totalt onödigt.
Precis lika onödigt som att lägga till en tom sträng på slutet av allting, se crisse6s senaste inlägg, exempelvis. Det är en sjukdom som sprids som en löpeld.
Snabelregel nummer ett: Om något är onödigt, gör det icke.
Mvh,
Detta Borde funka bra:
[RED]
<%
strSQL = "UPDATE tbl_analys SET rubrik = '"& Request.form("rubrik") &"' WHERE id = "& Request.Form("ID")
oConn.Execute strSQL,,128
oConn.Close : Set oConn = Nothing
Response.write "<body bgcolor='#FFFFFF' text='#000000'>"
Response.redirect("visaanalys.asp")
%>[/RED]
/ Mikul
@nders skrev:
Precis lika onödigt som att lägga till en tom sträng på slutet av allting, se crisse6s senaste inlägg, exempelvis. Det är en sjukdom som sprids som en löpeld.
Jag brukar lägga ett ; semikolon sist i strängen.
Semikolon talar väl om att här tar stängen minsan slut och
ingen annan stans, är då detta helt onödigt?
Jag tycker att det är onödigt, så länge man inte har flera statements i samma sträng. Då måste man separera sina statements. Nu vet jag iofs inte om man kan exekvera flera statements samtidigt i samma sträng i Access.
Prova gärna att köra en SQL-fråga med semikolon på slutet och samma fråga utan. Jag är övertygad om att det inte är någon skillnad i exekveringstid eller annat.
Det finns dock, säkerligen, dbms som kräver att man avslutar varje statement med semikolon eller annat tecken, precis som det finns programmeringsspråk som kräver det.
Mvh,