webForumDet fria alternativet

Updatera med ASPUpload

ASPur ASP

13 svar · 344 visningar · startad av CatZ

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

Hur skriver jag om koden nedan så att jag kan uppdatera istället för att lägga till ?

Connect = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath(".\databas\wbbas.mdb")
Set rs = Server.CreateObject("adodb.recordset")

	rs.Open "Mall", Connect, 3, 3
	 rs.AddNew
		rs("SmId") = Upload.Form("SmId")
		rs("SmNamn") = Upload.Form("SmNamn")
		rs("SmDatum") = Upload.Form("SmDatum")
		rs("SmJour") = Upload.Form("SmJour")
		rs("SmForm") = Upload.Form("SmForm")
		rs("SmAnsv") = Upload.Form("SmAnsv")
		rs("SmAnm") = Upload.Form("SmAnm")
	rs.Update
Response.Redirect("Mall.asp")

ID för det som ska uppdateras är redan bestämt. Så det är någon form av SQL = "UPDATE tabell SET kod kod WHERE Id = " & Request.Form("Id") Jag behöver. Jag vet inte hur man gör det med ASPUpload.

Medlem sedan jan. 20022 440 inlägg
#2

Luddigt eller ?

Skriver jag otroligt luddigt? För jag får ju knappt några svar alls :P

Medlem sedan juni 200032 969 inlägg
#3

Det beror lite på vad dina fält har för fälttyper i tabelldefinitionen.
Jag gissar att smDatum är av datumtyp, SmId tal/räknare, resten text.

Connect = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath(".\databas\wbbas.mdb")
set objConn = Server.CreateObject ("ADODB.Connection")
objConn.Open Connect
strSQL = "UPDATE Mall SET SmNamn = '" & Upload.Form("smNamn") & "', SmDatum = #" & Upload.Form("smDatum") & "#, SmJour = '" & Upload.Form("smJour") & "', smForm = '" & Upload.Form("smForm") & "', smAnsv = '" & Upload.Form("smAnsv") & "', SmAnm = '" & Upload.Form("smAnm") &"' WHERE SmId = " & Upload.Form("smId")
objConn.Execute strSQL,,128 'Specificerar att inget recordset skall skapas
Set objConn = Nothing

Om det är andra datatyper än de jag gissat, får du ändra i SQL-frågan. Talfältsvärden skall inte omslutas av något, medans text/pm-värden skall omslutas av apostrofer.

Mvh,

Medlem sedan jan. 20022 440 inlägg
#4

Hela koden

Så här ser koden ut. Jag glömde att ha med delen som Skickar upp filen.

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

Upload.SetMaxSize 100000, True

Count = Upload.Save

Set File = Upload.Files("FResultat")

If Not File Is Nothing Then
Connect = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath(".\databas\wbbas.mdb")
Set rs = Server.CreateObject("adodb.recordset")

Hash = File.MD5Hash
rs.Open "SELECT * from Mall WHERE Hash='" & Hash & "'", Connect, 2, 3
If Not rs.EOF Then
Response.Write "This file already exists in the database."
Response.End
End If
rs.Close

rs.Open "Mall", Connect, 3, 3

rs.AddNew
rs("SmId") = Upload.Form("SmId")
rs("FBlob") = File.Binary
rs("FNamn") = File.FileName
rs("FStor") = File.Size
rs("hash") = Hash
rs("SmNamn") = Upload.Form("SmNamn")
rs("SmDatum") = Upload.Form("SmDatum")
rs("SmJour") = Upload.Form("SmJour")
rs("SmForm") = Upload.Form("SmForm")
rs("SmAnsv") = Upload.Form("SmAnsv")
rs("SmAnm") = Upload.Form("SmAnm")
rs.Update
Response.Redirect("Mall.asp")
Else

I och med den koden kan jag inte skicka filen samtidigt som jag updaterar väl ? Jag ska experimentera lite med det du skrev Anders. Och får tacka för hjälpen även om jag inte begrep någonting :P

Medlem sedan juni 200032 969 inlägg
#5

Jo, det borde gå alldeles utmärkt att ladda upp filen samtidigt.
Varför skulle inte det gå?

Labba på du bara... ;)

Mvh,

Medlem sedan jan. 20022 440 inlägg
#6

<< e dum

...vad är det för skillnad på strSQL och SQL ? :r

Ok då, jag e ganska ny på det här.. KOM IGEN BARA!! :birp

Medlem sedan juni 200032 969 inlägg
#7

strSQL är det variabelnamn jag brukar använda för mina SQL-frågor. SQL är ju själva frågespråket, Structured Query Language. Många använder just SQL som variabelnamn på sina SQL-frågor.

Mvh,

Medlem sedan jan. 20022 440 inlägg
#8

Det blir fel...

Jag försöker göra det hela lite annorlunda men får upp felmeddelandet:
Feltyp:
Körningsfel i Microsoft VBScript (0x800A000D)
Inkompatibla typer
/wexiobridgen/mall.asp, line 144

SQL = "INSERT INTO Mall (SmNamn, SmDatum, SmJour, SmForm, SmAnsv, SmAnm, FBlob, FNamn, FStor, hash) VALUES ('" & CharConvert(Upload.Form("SmNamn")) & "', '" & Upload.Form("SmDatum") & "', '" & CharConvert(Upload.Form("SmJour")) & "', '" & CharConvert(Upload.Form("SmForm")) & "', '" & CharConvert(Upload.Form("SmAnsv")) & "', '" & CharConvert(Upload.Form("SmAnm")) & "', '" & File.Binary & "', '" & File.FileName & "', '" & File.Size & "', '" & Hash & "')"
rs.Open SQL, OBJdbConnection, 3, 3

Jag måste nog korta ner den satsen lite...
Men varför fungerar den inte ?

Medlem sedan juni 200032 969 inlägg
#9

Du får modifiera den beroende på vad du har för datatyper på fälten, som jag skrev ovan.

Vad har du för datatyper på fälten i frågan?

Jag ser att du inte har # som du ska runt datumfältet, om det nu är av datumtyp, till exempel.

Mvh,

Medlem sedan jan. 20022 440 inlägg
#10

ok...

SmDatum är just datum
SmId är räknaren
Övriga Sm är PM

FNamn är PM = Namnet på filen
FBlob är ActiveX-Object
FStor är tal = Storleken på filen
hash är text = kollar så att man inte skickar dubletter.

Medlem sedan jan. 20022 440 inlägg
#11

@nders ?

E du vaken än ? §e

Medlem sedan dec. 2000399 inlägg
#12

Hoppas jag fick med allt :)

SQL = "INSERT INTO Mall (SmNamn, SmDatum, SmJour, SmForm, SmAnsv, SmAnm, FBlob, FNamn, FStor, hash) VALUES ('" & CharConvert(Upload.Form("SmNamn")) & "', #" & Upload.Form("SmDatum") & "#, '" & CharConvert(Upload.Form("SmJour")) & "', '" & CharConvert(Upload.Form("SmForm")) & "', '" & CharConvert(Upload.Form("SmAnsv")) & "', '" & CharConvert(Upload.Form("SmAnm")) & "', '" & File.Binary & "', '" & File.FileName & "', '" & File.Size & "', '" & Hash & "')"
Medlem sedan juni 20019 519 inlägg
#13

skulle vilja ha hela koden av dej om ni fixar denna =)

Medlem sedan jan. 20022 440 inlägg
#14

Heh Jag löste det iofs för några månader sedan men men ;)

135 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)