我使用SQL Server并在我的数据库上启用FileStream。为了将我的文件保存到文件流表,我使用SSMS下面的代码:
INSERT INTO dbo.mytable( Data )
SELECT *
FROM OPENROWSET(BULK 'C:\Temp\image.png', SINGLE_BLOB) AS z
我寻找一个SQL查询来将FileStream数据从表保存到特殊路径。
怎么做呢。
我寻找SQL Server查询,我不想在.Net,Delphi等中使用工具应用程序或编程。
提前致谢
答案 0 :(得分:2)
这个怎么样?这是一种将文件写入磁盘的纯SQL方法,但它会使用命令shell,这会在服务器上造成安全风险。
declare @writetofile varchar(max)
select @writetofile = 'osql -U -P -S -Q"select ColumnName from yourtable" -o"c:\SomeFolder\MyFile.bin"
exec master..xp_cmdshell @writetofile
更新: 这不是最容易运行的东西,但尝试在powerscript或.bat文件中运行它:
Rem CD command sets the execution folder
cd C:\Program Files\Microsoft SQL Server\90\Tools\binn
rem SQLCmd sets the command using SQLCmd.exe program
rem -S = server name, -d database name, -U is username, -P is password, -Q is query to run, -o is output to
SQLCMD -S ServerName\InstanceName -d DBName -U sa -P MyPassword -Q"select top 1 FieldName from TableName" -o"c:\temp\MyFile.txt"
答案 1 :(得分:0)
这篇文章可以帮到你: Script to save varbinary data to disk
class formulaire_evaluation(models.Model):
_name = 'pncevaluation.fe'
_description = u"Formulaire d\'évaluation"
name = fields.Char(u"Intitulé du formulaire")
contributeur = fields.Many2one('pncevaluation.contributeur',string="Contributeur")
date = fields.Date(u"Date")
@api.multi
def write(self, vals):
rec = super(formulaire_evaluation, self).write(vals)
#my_custom_code
return rec