Chr*_*ris 3 ado.net stream varbinary
我有一些正在序列化的数据。我需要使用.Net 3.5(而不是4.0)下的ADO.NET(也使用企业库)从VarBinary列中保存和还原此列。
我似乎能够找到并开始工作的唯一接口是使用byte []。这需要分配一个大数组来进行传输。
ADO.NET对于这些列不支持Streams似乎是不可能的。还是我忽略了什么?
谢谢
我一直在寻找相同的答案。我在EggHeadCafe上找到了一篇文章,该文章使用如下命令提供了解决方案:
SELECT substring(DataColumn, @offset, @length) FROM BlobTable WHERE ID = @key
和这样的命令来写:
UPDATE BlobTable SET DataColumn.write(@buffer, @offset, @length) WHERE ID = @key
您可以在此处找到完整的解决方案(带有自定义流类):http : //www.eggheadcafe.com/software/aspnet/29988841/how-to-readwrite-chunked-to-varbinarymax-in-c.aspx。
但是出于我的目的,我认为我将利用从开始提供的FileStream数据类型Sql Server 2008
。一旦插入一条记录(没有二进制数据),Sql Server就会在磁盘上分配一个物理文件,用于读取和写入记录数据。然后,您运行命令以获取路径名:
SELECT DataColumn.PathName() FROM BloblTable WHERE [Id] = @key
有了后,您可以使用传统的流类(例如)来读写文件 System.IO.FileStream
。
有相当大的开销,但是FileStream随着文件变大(大约10mb)而变得更快。对于较小的文件,可以将FileStream列视为varbinary列,而开销要少得多。CodeProject上的本文介绍了详细信息:http : //www.codeproject.com/KB/database/SqlFileStream.aspx
归档时间: |
|
查看次数: |
3335 次 |
最近记录: |