使用wix将图像从远程位置上传到sql

时间:2013-04-23 15:48:07

标签: sql wix

我们计划将报表服务器上使用的图像移动到数据库,因为目前我们必须在每个报表服务器上运行安装程序以将图像添加到该服务器。 但是我们的问题是安装程序也可能从远程位置运行(即不是将数据保存在数据库中的数据库服务器)。在这种情况下,Openrowset将无法在我们的本地服务器上上传我们的图像,而数据库服务器是远程的。

有没有办法使用我们的安装程序从另一台服务器上传图像,该安装程序是用wix编写的?

1 个答案:

答案 0 :(得分:0)

我最近在使用BCP时遇到了类似的问题。最后,我在安装目录中创建了一个共享:

<CustomAction Id="SetDatafileSharePath"
              Property="DATAFILE_SHARE"
              Value="\\[ComputerName]\DataLocation" />

<util:User Id="EveryoneUser"
           Name="Everyone" />

<util:FileShare Id="DataShare"
                Name="DataLocation"
                Description="Share of the datafiles.">
    <util:FileSharePermission Read="yes"
                              ReadAttributes="yes"
                              ReadPermission="yes"
                              CreateChild="yes"
                              CreateFile="yes"
                              GenericAll="yes"
                              User="EveryoneUser" />
  </util:FileShare>

然后使用DATAFILE_SHARE属性运行BCP命令。我遇到的最大问题是共享权限,因此您可能需要更改一些FileSharePermission设置才能让它适合您。

如果没有太多图像并且它们不太可能更改,那么您拥有的另一个选项是将它们插入本地SQL服务器,然后使用SSMS Tools的“生成插入脚本”功能来创建sql插入图像blob作为base64字符串。不幸的是,由于我的数据每个月都在变化,我无法做到这一点。