热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SQLServer2008新特性Filesteam的使用

Filesteam是SQLServer2008的新特性,它结合了SQLServer和NTFS文件系统,为Blob类型的数据提供了比较高效的存储和访问方案。我们最近的一个项目就是采用SQLServer的此种特性。下面是使用这种技术的方法。开启FileStream特性,步骤如下:在开始菜单中,依

Filesteam是SQL Server2008的新特性,它结合了SQL Server和NTFS文件系统,为Blob类型的数据提供了比较高效的存储和访问方案。我们最近的一个项目就是采用SQL Server的此种特性。下面是使用这种技术的方法。 开启FileStream特性,步骤如下: 在开始菜单中,依

Filesteam是SQL Server2008的新特性,它结合了SQL Server和NTFS文件系统,为Blob类型的数据提供了比较高效的存储和访问方案。我们最近的一个项目就是采用SQL Server的此种特性。下面是使用这种技术的方法。

  • 开启FileStream特性,香港服务器,步骤如下:
  • 在“开始”菜单中,依次指向“所有程序”、“Microsoft SQL Server 2008”和“配置工具”,然后单击“SQL Server 配置管理器”。

  • 创建FileStream数据库
  • 在 SQL Server Management Studio 中,单击“新建查询”以显示查询编辑器。

  • 将下面示例的 Transact-SQL 代码复制到查询编辑器中。此 Transact-SQL 代码可创建一个启用了FILESTREAM 的数据库,称为 FileStreamTestDb。
  • USE master; GO CREATE DATABASE FileStreamTestDb ON PRIMARY (NAME = FileStreamTestDb, FILENAME = 'c:\tmp\FileStreamTestDb.mdf'), FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM (NAME = FileStreamGroup1, FILENAME = 'c:\tmp\filestream1.ndf') LOG ON (NAME = FileStreamTestDblog, FILENAME = 'c:\tmp\FileStreamTestDb_log.ldf') GO -- 注意: 对于此脚本,C:\tmp目录必须存在。

  • 单击“执行”。
  • 创建FileStream数据表
  • 在 SQL Server Management Studio 中,单击“新建查询”以显示查询编辑器。
  • 将下面示例的 Transact-SQL 代码复制到查询编辑器中。此 Transact-SQL 代码可创建一个启用了FILESTREAM 的表,称为 FileStreamTestTable。
  • use FileStreamTestDb go CREATE TABLE FileStreamTestTable ( [Id] [uniqueidentifier] ROWGUIDCOL NOT NULL UNIQUE, [FileName] NVARCHAR(64) , [BlobData] VARBINARY(MAX) FILESTREAM NULL ) GO

  • 单击“执行”。
  • 保存文件到数据表中(引用:)
  •   

    try { OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = "文件|*.*"; if (dialog.ShowDialog() == DialogResult.OK) { using (SqlConnection cOnn= new SqlConnection(CONNECTIONSTRING)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = "INSERT INTO FileStreamTestTable(FileName, BlobData) VALUES(@fileName, @file)"; SqlParameter param = new SqlParameter("@fileName", SqlDbType.NVarChar, 64); param.Value = dialog.FileName; cmd.Parameters.Add(param); FileStream fs = new FileStream(dialog.FileName, FileMode.Open); byte[] bytes = new byte[fs.Length]; fs.Read(bytes, 0, bytes.Length); SqlParameter param = new SqlParameter("@file", SqlDbType.VarBinary, 1000000); param.Value = bytes; cmd.Parameters.Add(param); MessageBox.Show(cmd.ExecuteNonQuery() == 1 ? "成功保存文件" : "保存文件失败"); fs.Close(); } conn.Close(); } } else { MessageBox.Show("用户取消了操作"); } catch (Exception ex) { MessageBox.Show(ex.Message); } }

  • 从数据表中读取文件(引用:)
  •   

    try { using (SqlConnection cOnn= new SqlConnection(CONNECTIONSTRING)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = "select top 1 BinaryContents from BinaryTable order by ID desc"; SqlDataReader reader = cmd.ExecuteReader(); SaveFileDialog dialog = new SaveFileDialog(); dialog.Filter = "文件(*.*)|*.*"; if (dialog.ShowDialog() == DialogResult.OK) { reader.Read(); System.Data.SqlTypes.SqlBinary result = reader.GetSqlBinary(0);//值得注意的是这里并没有什么GetSqlImage的方法 FileStream fs = new FileStream(dialog.FileName, FileMode.Create); fs.Write(result.Value, 0, result.Length); fs.Close(); reader.Close(); } else { MessageBox.Show("用户取消操作"); } } conn.Close(); } } catch (Exception ex) { MessageBox.Show(ex.Message); }

  • 上面内容并非原创,香港虚拟主机,而是从一些网站截取,下面是一些参考文章,里面介绍了一些更详细的内容:

    Sql Server 2008 FileSteam全攻略(一)---FileStream介绍

    Sql Server 2008 FileSteam全攻略(二)---FileStream安装

    在SQL Server 2008中配置FILESTREAM(百度文库)

    Programming with FileStreams in SQL Server 2008(MSDN)

    ,美国空间
    推荐阅读
    • 分享css中提升优先级属性!important的用法总结
      web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
    • 如何更改电脑系统的自动校时服务器地址?
      本文介绍了如何通过注册表编辑器更改电脑系统的自动校时服务器地址。通过修改注册表中的数值数据或新建字符串数值的方式,可以将默认的时钟同步服务器地址更改为自己所需要的域名或IP地址。详细步骤包括双击时间区域,点击internet时间,勾选自动校正域名设置定时等操作。 ... [详细]
    • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
    • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
    • “你永远都不知道明天和‘公司的意外’哪个先来。”疫情期间,这是我们最战战兢兢的心情。但是显然,有些人体会不了。这份行业数据,让笔者“柠檬” ... [详细]
    • [译]技术公司十年经验的职场生涯回顾
      本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
    • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
      本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
    • 知识图谱——机器大脑中的知识库
      本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
    • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
    • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
      本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
    • 计算机存储系统的层次结构及其优势
      本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
    • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
    • 树莓派语音控制的配置方法和步骤
      本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
    • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
    • OCI连接MySQL_PLSQL Developer连接远程数据库OCI客户端安装方法
      本文介绍了使用OCI客户端连接MySQL和PLSQL Developer连接远程数据库的安装方法,避免了在本地安装Oracle数据库或类似的开发套件的麻烦,同时解决了PLSQL Dev连接远程Oracle时的配置问题。 ... [详细]
    author-avatar
    手机用户2502853267
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有