webForumDet fria alternativet

ASPUpload och SQL-problem

ASP

10 svar · 444 visningar · startad av Troxy

Medlem sedan mars 20041 505 inlägg
Frågan#1

Jag vill uppdatera en post i en Access-databas. Egentligen ska det ligga ett filformulär som laddar upp en fil samtidigt också, (Därav valet av enctype), men det har jag inte fixat än, så än så länge är det bara uppdateringen av databasen som det är problem med, och problemet är att det helt enkelt blir tomt när jag uppdaterar. Inga felmeddelanden heller.

Formulär:

<form method="post" enctype="multipart/form-data" action="update.asp&id=<%=id%>">
Namn: <input type="text" name="namn"><br>
Info: <textarea name="info"></textarea><br>
<input type="submit" value="Skicka">
</form>

Update.asp:

Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databas.mdb")

Set Upload = Server.CreateObject("Persits.Upload")

int_ID = Request.Querystring("id")
str_Namn = Upload.Form("namn")
str_Info = Upload.Form("info")

SQL = "UPDATE bilder Set namn = '" & str_Namn & "', info = '" & str_Info & "' Where id = "& int_ID

Connection.Execute(SQL)
			
Response.redirect "index.asp"

Set Upload = Nothing

Connection.Close
Set Connection = Nothing
Medlem sedan juni 200032 967 inlägg
#2

Om jag inte missminner mig måste man köra uploadobjektets metod Save innan man kan komma åt värden från formuläret.

Läs mer i manualen.

mvh

Medlem sedan mars 20041 505 inlägg
#3

Vad jobbigt, för säg om jag inte vill ladda upp en fil, utan bara skriva något, så går det ju inte, eller?

Medlem sedan juni 200032 967 inlägg
#4

Jo, det ska gå alldeles utmärkt. Fast då sparas ju förstås ingen fil på servern heller, men det kanske du kan leva med? ;)

Medlem sedan mars 20041 505 inlägg
#5

@nders, hur menar du? Ska det fungera att göra som jag gör nu, dvs att spara in text i databasen utan att köra en upload först?

Dessutom har jag tänkt lägga till en if-sats som kollar om file-fältet är ifyllt eller ej. Om det är iflyllt, körs en upload, och är det tomt så körs ingen upload.

Men nu fungerar det inte att bara spara text i databasen...och man kan ju inte köra en upload på ett tomt file-fält.

Medlem sedan mars 20015 287 inlägg
#6

Har du testat att lägga till "save"-raden och inga if-satser för att sen fylla i lite data i formen o sen "ladda upp". Med och utan en fil?
Typ:

Upload.Save "c:\upload"
Medlem sedan mars 20041 505 inlägg
#7

solbulle, det fungerar med upload, testade precis. Då fungerar det även att stoppa in texten i databasen.

Upload.form("namn") fungerar alltså bara efter man kört en upload.

Men hur ska jag göra om jag vill kunna lämna fil-fältet tomt, och ändå skriva texten? Det går ju inte att köra en upload på ett tomt file-fält va?

EDIT: Det gick att köra upload på ett tomt file-fält tydligen...hm, har precis för mig att jag fick error förut.

Weee, mitt problem är löst nu :)

Medlem sedan juni 200032 967 inlägg
#8

Troxy skrev:

EDIT: Det gick att köra upload på ett tomt file-fält tydligen

Som sagt. :)

Bra att du fick ihop det!

Mvh

Medlem sedan mars 20041 505 inlägg
#9

@nders, jepp, tack för hjälpen!

Nu har jag iof "accepterat som slutgiltigt svar" men det går kanske bra med en fråga till:

Hur kollar man med en IF-sats om ett file-fält är tomt??

If Upload.Files("file") <> "" then

...verkar inte fungera =(

Medlem sedan juni 200032 967 inlägg
#10

Självklart får man ställa följdfrågor! :-)

Set File = Upload.Files("file")
If File Is Nothing Then
     ' Nä, ingen fil!
End If

Mvh

Medlem sedan mars 20041 505 inlägg
#11

Tackar! =)))

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