Avatar billede jpv Nybegynder
20. april 2004 - 22:01 Der er 9 kommentarer og
1 løsning

Update med AspSmartUpload

Jeg skal have opdateret to billedfiler og rettet navnene i min Access database.
Jeg kan godt oprette, men ikke finde ud af at updater skidtet.
Form felterne hedder file1 og file2 og sjovt nok hedder min felter i databasen det samme.
Er der nogle der kan hjælpe
Avatar billede vbcoder Nybegynder
21. april 2004 - 07:03 #1
du har trukket en post ud af databasen og der skal du også have dit unikke id for posten. Nedenstående kode opdaterer din post baseret på dine 2 formfelter og postens unikke ID

strSql = "UPDATE DISTINTROW [tabel] SET [file1] = '" & request.form("file1") & "', [file2] = '" & request.form("file2") & "' WHERE ditUnikkeID = " & request.form("ditUnikkeID") & ";"

brug dit connection object

ditConnectionObject.Execute (strSql)
Avatar billede jpv Nybegynder
21. april 2004 - 10:44 #2
Jeg kan ikke få det til at virke, jeg har prøvet næsten alt
Avatar billede jpv Nybegynder
21. april 2004 - 10:48 #3
Det her virker med at opdater et fotonavn i DB og uploade foto
Men jeg kan ikke få nummer 2 til at makke ret
Her er koden
<%
'  Variables
'  *********
  Dim mySmartUpload, intCount, idnr, maerke, year, km, bem, udstyr, pris, farve  %>
<!--#include file="sti.asp"-->
<%
  intCount=0

'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Only allow txt or htm files
'  ***************************
  mySmartUpload.AllowedFilesList = "jpg,jpeg,gif"

'  Only allow files smaller than 60000 bytes
'  *****************************************
  mySmartUpload.MaxFileSize = 60000

'  Upload
'  ******
  mySmartUpload.Upload



idnr=mySmartUpload.form("idnr")
'maerke=mySmartUpload.form("maerke")
'year=mySmartUpload.form("year")
'km=mySmartUpload.form("km")
'bem=mySmartUpload.form("bem")
'udstyr=mySmartUpload.form("udstyr")
'pris=mySmartUpload.form("pris")
'farve=mySmartUpload.form("farve")


'  Select each file
'  ****************
  For each file In mySmartUpload.Files
'  Only if the file exist
  '  **********************
  If file.IsMissing = false Then
      '  Save the files with his original names in a virtual path of the web server
      '  **************************************************************************
 

file.SaveAs(server.mappath("../grafik/bil/" & file.FileName))


if CStr(intCount) = "0" then

streng = "" & file.FileName & ""       

end if
        ' sample with a physical path
        'file.SaveAs("c:\" & file.FileName)

      '  Tæl antal filer...
      '  ******************************************
      intCount = intCount + 1
      End If
  Next



'  Display the number of files which could be uploaded
'  ***************************************************

set rs = Server.CreateObject("ADODB.Connection")
str = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & sti & ""
rs.open str




sql = "Update bil set file1='" & streng & "'    WHERE idnr = " & idnr & ""




set rs = rs.execute(sql)



' Response.Write("<BR>" & mySmartUpload.Files.Count & " Kunne sendes.<BR>")

'  Display the number of files uploaded
'  ************************************
' Response.Write(intCount & " fil sendt.<BR>")



Set conn = Nothing
  Set rs = nothing
response.redirect "retbiler01.asp"



%>
Avatar billede tzag_dk Nybegynder
21. april 2004 - 11:08 #4
Er det den her du ikke kan få til at virke?

sql = "Update bil set file1='" & streng & "'    WHERE idnr = " & idnr & ""
set rs = rs.execute(sql)

Er du sikker på at der er noget i værdien: idnr ??
Avatar billede jpv Nybegynder
21. april 2004 - 11:22 #5
Den virker fint når det kun er en fil der skal opdateres, men når jeg vil have nummer 2 med, går det galt.
Jeg kan ikke bare skrive:
sql = "Update bil set file1='" & streng & "', file2='" & streng & "'    WHERE idnr = " & idnr & ""
set rs = rs.execute(sql)

Det er med at få variablen streng til at virke rigtig
Avatar billede tzag_dk Nybegynder
21. april 2004 - 11:27 #6
Hvad med:

if mySmartUpload.form("file1") <> "" then
sql = "Update bil set file1='" & streng & "' WHERE idnr = " & idnr & ""
set rs = rs.execute(sql)
end if
if mySmartUpload.form("file2") <> "" then
sql = "Update bil set file2='" & streng & "' WHERE idnr = " & idnr & ""
set rs = rs.execute(sql)
end if
Avatar billede vbcoder Nybegynder
21. april 2004 - 11:30 #7
Hvis du flytter åbningen af databasen op før du starter gennemløb af filer så
kan du lave en tilskrivning af værdier fra file.filename til 2 variabler baseret på intCount f.x. file1 og file2

set rs = Server.CreateObject("ADODB.Connection")
str = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & sti & ""
rs.open str


  For each file In mySmartUpload.Files
'  Only if the file exist
  '  **********************
  If file.IsMissing = false Then
      '  Save the files with his original names in a virtual path of the web server
      '  **************************************************************************
        dim file1, file2

        file.SaveAs(server.mappath("../grafik/bil/" & file.FileName))

        select case intCount
        case 0
            file1 = file.filename
        case 1
            file2 = file.filename
        end select
        'streng = "" & file.FileName & ""       

      '  Tæl antal filer...
      '  ******************************************
        intCount = intCount + 1
  End If
  Next

  sql = "Update bil set file1='" & file1 & "', file2='" & file2 & "' WHERE idnr = " & idnr & ""

  set rs = rs.execute(sql)
Avatar billede jpv Nybegynder
22. april 2004 - 09:46 #8
Undskyld vente tiden.
Nu virker det :-)
Vil i være så venlig at give mig nogle svar
Tak for hjælpen
Avatar billede vbcoder Nybegynder
22. april 2004 - 09:48 #9
jep
Avatar billede vbcoder Nybegynder
22. april 2004 - 09:48 #10
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester