将VSD文件存储并检索到SQL FILETABLE

时间:2014-07-02 15:07:49

标签: c# sql vb.net

如何将.VSD文件保存到SQL Server 2012中的FileTable中?还需要在网页上检索并显示.VSD文件吗?

文件表列:file_stream varbinary(max)

有任何帮助吗?谢谢。

使用的代码:

sfileName = "sample.vsd"
Dim fs As New FileStream(sfileName, FileMode.Open, FileAccess.Read)
Dim br As New BinaryReader(fs)
Dim bytes As Byte() = br.ReadBytes(CInt(fs.Length))

2 个答案:

答案 0 :(得分:0)

VARBINARY(MAX)将是存储二进制数据的正确数据类型,您将需要使用FILESTREAM属性。如果您认为这是您将存储在表中的唯一文件类型,那么您就是好的。如果需要存储多种类型的文件,则需要添加另一列来捕获文件类型,然后让应用程序正确显示它。

查看以下帖子,以便您更好地理解。文章提到了SQL 2008,但它适用于2012年和2014年:

http://blogs.technet.com/b/dataplatforminsider/archive/2008/04/14/sql-server-2008-makes-it-easy-to-manage-blobs-and-files.aspx

答案 1 :(得分:0)

我还没有找到从SQL Server 2012中的FILETABLE保存和检索Visio(.vsd)文件的方法。 我试图将Visio文件保存到最新版本的Visio(.vsdx),但它不起作用。

解决它的方法是将.vsd文件保存为PDF或Image文件。然后使用我的问题中提到的代码将文件保存到SQL Server FILETABLE。