将二进制文件保存到sql

时间:2010-07-29 09:39:22

标签: sql asp-classic ado

我正在尝试将pdf转换为二进制dato并将其保存到我的SQL数据库中。当我只是将pdf(从二进制文件)输出到用户时,它可以很好地工作。

我的数据库中二进制数据的字段是image。

以下是我正在做的事情:

Set oFileStream = Server.CreateObject("ADODB.Stream")
oFileStream.Open
oFileStream.Type = 1 'Binary
oFileStream.LoadFromFile strPDF

如果我执行Response.BinaryWrite(oFileStream.Read),则PDF会弹出给用户。

然后我想将它存储到SQL:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "xxx"
strSQL = "INSERT INTO vAnalysesHistory (datetime,chosendatetime,companyid,code,content) VALUES (?,?,?,?,?)"
Set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = Conn
cmd.CommandType = adCmdText
cmd.CommandText = strSQL
cmd.Parameters.Append cmd.CreateParameter("@datetime", adDate, adParamInput, 255, now)
cmd.Parameters.Append cmd.CreateParameter("@chosendatetime", adDate, adParamInput, 255, Request.Form("date"))
cmd.Parameters.Append cmd.CreateParameter("@companyid", adVarChar, adParamInput, 255, Request.Form("companyid"))
cmd.Parameters.Append cmd.CreateParameter("@code", adVarChar, adParamInput, 255, Request.Form("code"))
cmd.Parameters.Append cmd.CreateParameter("@content", adLongVarBinary, adParamInput, 8000, oFileStream.Read)
cmd.Execute()

Conn.close
Set Conn = Nothing

我刚收到此错误: 应用程序使用错误类型的值进行当前操作。

我还尝试了其他一些其他错误。

2 个答案:

答案 0 :(得分:0)

首先将流读入字节,然后将Byte变量传递给@content参数

答案 1 :(得分:0)

根据Vidar的说法,请参阅“将图像文件上载到数据库”部分:

http://www.beansoftware.com/ASP.NET-Tutorials/Save-Read-Image-Database.aspx

相关问题