Sql server 如何在SQLServer2008中存储图像blob数据?
我需要在表中存储图像blob数据。我知道在数据库表中以blob格式存储图像不是最佳做法。但这样做是客户的要求。我正在使用ColdFusion 10和SQL Server 2008。我已使用此代码段在SQL server中插入图像blob数据Sql server 如何在SQLServer2008中存储图像blob数据?,sql-server,sql-server-2008,coldfusion,coldfusion-10,Sql Server,Sql Server 2008,Coldfusion,Coldfusion 10,我需要在表中存储图像blob数据。我知道在数据库表中以blob格式存储图像不是最佳做法。但这样做是客户的要求。我正在使用ColdFusion 10和SQL Server 2008。我已使用此代码段在SQL server中插入图像blob数据 <cfimage action="read" name="imdata" source="C:\inetpub\wwwroot\a.jpg" > <cfquery datasource="localdsn"> INSERT IN
<cfimage action="read" name="imdata" source="C:\inetpub\wwwroot\a.jpg" >
<cfquery datasource="localdsn">
INSERT INTO imtbl(image)
VALUES #imageGetBlob(imdata)#
</cfquery>
插入imtbl(图像)
值#imageGetBlob(imdata)#
但这是一个错误
ByteArray对象无法转换为字符串。
我也尝试过使用#toString(imageGetBlob(imdata))#
仍然没有成功
我已经检查过了,但找不到任何解决办法。最后我解决了这个问题。我做的两件事是
插入imtbl(图像)
价值观(
)
您是否在ColdFusion数据源上启用了BLOB设置?是否尝试使用cfqueryparam参数化日志?类似于
的东西可能有助于揭示发生了什么。@Miguel-F:是的,我已经启用了它,但几乎没有工作FileReadBinary()
需要一个文件路径。您正在传入一个图像变量。去掉cfimage并在cfqueryparam中使用FileReadBinary(“C:\inetpub\wwwroot\a.jpg”)
。另外,您显然需要在VALUES(…)
子句中使用括号。我将添加以下注意事项:如果您在SQL Server中使用映像类型(将在将来的版本中删除),请将其替换为varbinary(max)-varbinary vs image SQL Server数据类型来存储二进制数据?