Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在SQLServer2008中存储图像blob数据?_Sql Server_Sql Server 2008_Coldfusion_Coldfusion 10 - Fatal编程技术网

Sql server 如何在SQLServer2008中存储图像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

我需要在表中存储图像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 INTO imtbl(image)
  VALUES #imageGetBlob(imdata)#
</cfquery>

插入imtbl(图像)
值#imageGetBlob(imdata)#
但这是一个错误

ByteArray对象无法转换为字符串。

我也尝试过使用
#toString(imageGetBlob(imdata))#
仍然没有成功


我已经检查过了,但找不到任何解决办法。

最后我解决了这个问题。我做的两件事是

  • 我已为数据源启用BLOB设置

  • 我终于使用了这个查询

  • 
    插入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数据类型来存储二进制数据?