webForumDet fria alternativet

ASPUpload och SQL-problem

10 svar · 444 visningar · startad av Troxy

TroxyMedlem sedan mars 20041 508 inlägg
#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
@ndersMedlem sedan juni 200026 914 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

TroxyMedlem sedan mars 20041 508 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?

@ndersMedlem sedan juni 200026 914 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? ;)

TroxyMedlem sedan mars 20041 508 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.

solbulleMedlem sedan mars 20014 998 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"
TroxyMedlem sedan mars 20041 508 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 :)

@ndersMedlem sedan juni 200026 914 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

TroxyMedlem sedan mars 20041 508 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 =(

@ndersMedlem sedan juni 200026 914 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

TroxyMedlem sedan mars 20041 508 inlägg
#11

Tackar! =)))

Genererad på 388 ms · cache AV · v20260730165559-full.f96bc7eb