上传图像后,我正试图将一条记录插入access数据库。图像保存正确,但我无法使插入命令工作。
set o = new clsUpload
if o.Exists("cmdSubmit") then
'get client file name without path
sFileSplit = split(o.FileNameOf("txtFile"), "")
sFile = sFileSplit(Ubound(sFileSplit))
o.FileInputName = "txtFile"
o.FileFullPath = Server.MapPath("ads") & "" & sFile
o.save
if o.Error = "" then
response.write "Success. File saved to " & o.FileFullPath & ". County = " & o.ValueOf("County")
Company = o.ValueOf("Company")
County = o.ValueOf("County")
imgfile = sFile
Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
OBJdbConnection.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=C:UsersUserDesktopWebsites123justlistitwwwrootadmin123justlistit.mdb"
Set sqlIns = Server.CreateObject("ADODB.Command")
sqlIns.ActiveConnection = OBJdbConnection
sqlIns.commandtext="insert into ads (company, county, image)values(?,?,?)"
sqlIns.Parameters.Append sqlIns.CreateParameter("@company", adVarChar, adParamInput, 25, Company)
sqlIns.Parameters.Append sqlIns.CreateParameter("@county", adVarChar, adParamInput, 25, County)
sqlIns.Parameters.Append sqlIns.CreateParameter("@imgfile", adVarChar, adParamInput, 50, imgfile)
sqlIns.execute
OBJdbConnection.Close
else
response.write "Failed due to the following error: " & o.Error
end if
end if
set o = nothing
我得到:
Microsoft JET Database Engine error '80040e14'
Syntax error in INSERT INTO statement.
我认为这与尝试插入图像的文件名有关,但我不确定
您的两个参数名称(@company
和@county
)与列名冲突。要么将参数名称更改为其他名称,要么(更好)将查询字符串中的标识符放在方括号中:
sqlIns.CommandText = "INSERT INTO [ads] ([company], [county], [image]) VALUES (?,?,?)"
使用方括号还可以避免标识符包含空格或与保留字冲突的问题。