从SQL Server导出图像

时间:2013-09-24 04:31:35

标签: sql-server export

我正在Dynamics CRM 2011之上构建一个庞大的库存和销售管理计划。我已经做了很多工作,但我有点困在一个部分:

图像存储在编码为base64且带有MimeType列的数据库中。我想知道如何按计划以编程方式提取这些图像,作为数据传输的一部分发送,以同步另一个数据库。

我有一个SQL Server代理作业,用于导出我创建的视图。我正在考虑编写一个程序来获取生成的CSV并使用它来获取我们需要为其提取图像的产品列表,然后查询数据库并将文件保存为productserial-picnum.ext

这是最好的方法吗?有没有更简单的方法将图像从数据库中拉出来并进入文件?

我希望它只能导出自上次修改后的列以来发生过更改的图像。

我完全不知道C#,VB,PHP和JavaScript足以造成一些损害..

1 个答案:

答案 0 :(得分:1)

你应该能够在TSQL中实现这个目标

OPEN cursor with qualifying records (where now>lastmodified etc)

For Each Record
Select Binary Data into "@BinaryData
Convert "@BinaryData to @VarcharData (Something like below will work)
    SET @VarcharData = CAST(N'' AS XML).value('xs:base64Binary(xs:hexBinary(sql:variable("@BinaryData")))', 'VARCHAR(MAX)')

Write @VarcharData to file (on server or a network drive if the agent is configured to write out)
Close File
Next Record