StevePMedlem sedan mars 2003772 inlägg Hej,
Jag har ett problem med ett extra kommatecken som dyker upp om ett av fälten som skall uppdateras lämnas tomt. Det är alltså ett <input type="file"> fält.
Om jag fyller i alla fälten och väljer en bild så fungerar det utmärkt!
SQL satsen ser då ut så här när den skrivs ut:
UPDATE tblhotel SET Country = '{39FDD7C7-0E2A-44A1-B83A-E3B36371236C}', Hotel = 'Bangkok Hilton',[HotelPicture]='fin.jpg' Where ID ='{572688F5-7AE2-4596-940F-ABA45AEE9338}'
Men om jag lämnar bildfältet tomt, alltså struntar i att välja någon bild eftersom jag vill ha kvar den bilden som redan finns så blir SQL satsen så här:
UPDATE tblhotel SET Country = '{39FDD7C7-0E2A-44A1-B83A-E3B36371236C}', Hotel = 'Bangkok Hilton', Where ID ='{572688F5-7AE2-4596-940F-ABA45AEE9338}'
Som ni ser så smyger det in ett kommatecken före "Where ID".
Här är min kod
For each file In mySmartUpload.Files
if len(file.filename)>0 then strSQL=strSQL & "[" & file.name & "]='" & file.filename & "',"
next
strSQL=left(strSQL,len(strSQL)-1)
SQL = "UPDATE tblhotel SET Country = '" & mySmartUpload.Form("SubCountry") & "', Hotel = '" & mySmartUpload.Form("txtHotel") & "'," & strSQL & " Where ID ='" & Request.QueryString("ID") & "'"
Conn.Execute(SQL)
J.N.Medlem sedan apr. 20031 660 inlägg HEJ!
Ja, så vill du ju ha det, det står ju ett kommatecken före din strSQL, [," & strSQL & "]. ;)
Lätt missa, enkelt lösa genom att flytta upp kommat där variabeln skapas!
strSQL=strSQL & ", [" & file.name & "]='" & file.filename & "',"
StevePMedlem sedan mars 2003772 inlägg Ja du har rätt! Men om jag flyttar upp kommatecknet på detta vis:
if len(file.filename)>0 then strSQL=strSQL & ",[" & file.name & "]='" & file.filename & "',"
next
strSQL=left(strSQL,len(strSQL)-1)
SQL = "UPDATE tblhotel SET Country = '" & mySmartUpload.Form("SubCountry") & "', Hotel = '" & mySmartUpload.Form("txtHotel") & "'" & strSQL & " Where ID ='" & Request.QueryString("ID") & "'"
Så blir SQL satsen helt korrekt i båda fallen men när jag lämnar bildfältet tomt så får jag följande felmeddelande: Invalid procedure call or argument: 'left'
J.N.Medlem sedan apr. 20031 660 inlägg Okej, vad koden gör, samlar du ihop en sql-sträng med olika filnamn i?
Och de existerar alltså inte alltid?
I vilket fall, kolla längden på strängen, om den är större än 0, kör left-koden.
http://www.devguru.com/Technologies/vbscript/quickref/len.html
StevePMedlem sedan mars 2003772 inlägg Bra idé!
Funkade utmärkt.
If Len(strSQL) > 1 then
strSQL=left(strSQL,len(strSQL)-1)
end if
Tack J.N!