使用SQL Server 2008的FILESTREAM特性管理文件
2009-02-26 10:21:54 来源:WEB开发网这次当你实例化SqlFileStream对象时,将文件访问权设为ReadWrite,因此你可以读取和写入文件流。
SqlFileStream stream = new SqlFileStream(path,
(byte[])reader.GetValue(1), FileAccess.ReadWrite,
FileOptions.SequentialScan, 0);
然后移动文件流的指针到文件末尾,这样你就可以追加数据了:
stream.Seek(0, SeekOrigin.End);
接下来使用SqlFileStream.Write()方法将用户输入的内容写入到文件流中:
stream.Write((System.Text.Encoding.ASCII.GetBytes
(contents)), 0, contents.Length);
最后调用SqlTransaction.Commit()方法提交事务。
FILESTREAM的优点
这就是全部过程,现在你可以读取、写入和追加数据到数据库管理的文件中了,虽然这个过程可能比使用文件或在BLOB中存储数据更复杂一些,你会发现使用数据库来管理文件由许多好处。
◆ 使用单个数据存储就可以同时访问非关系和关系数据。
◆ 在数据库备份和还原期间SQL Server自动包括非关系数据(BLOB)。
◆ 没有文件大小限制,varbinary(max)数据类型最大不能超过2GB,唯一受限的就是NTFS文件系统上的可用空间。
◆ 你可以在单个事务中同时插入、更新和删除关系数据和非关系数据。
◆ 使用FILESTREAM效率更高,因为SQL Server不再使用缓冲区内存操作非关系数据(BLOB)。
◆ 你可以使用ADO.NET在中间层代码直接访问非关系数据,不用再求值于独立的API了。
◆ 依赖于文件大小,NTFS文件系统可以比SQL Server更快地保存和检索大型BLOB。
本文向你展示了如何实现新的FILESTREAM特性,正如你所看到的,当你想在一个事务中同时存储关系数据和非关系数据时,FILESTREAM提供了一个易于使用的事务编程模型。
原文:Managing Files with SQL Server 2008's FILESTREAM Feature
作者:Thiru Thangarathinam
- ››sql server自动生成批量执行SQL脚本的批处理
- ››使用linux中的quota教程
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››使用jxl生成带动态折线图的excel
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
更多精彩
赞助商链接