SQL SERVER 2008中用C#定义压缩与解压缩函数
下面用C#2010定义一个函数,供SQL SERVER 2008使用:
下面是压缩函数
1 using System.Data.SqlClient; 2 using System.Data.SqlTypes; 3 using Microsoft.SqlServer.Server; 4 using System.Collections; 5 6 public partial class UserDefinedFunctions 7 { 8 [Microsoft.SqlServer.Server.SqlFunction( 9 DataAccess=DataAccessKind.Read, 10 FillRowMethodName="GetNextDepartment", 11 TableDefinition="Name nvarchar(50),GroupName nvarchar(50)")] 12 public static IEnumerable GetDepartments() 13 { 14 // 在此处放置代码 15 using (SqlConnection conn = new SqlConnection("context connection=true")) 16 { 17 string sql = "Select Name,GroupName From HumanResources.Department"; 18 conn.Open(); 19 SqlCommand comm = new SqlCommand(sql, conn); 20 SqlDataAdapter adaptor = new SqlDataAdapter(comm); 21 DataSet dSet = new DataSet(); 22 adaptor.Fill(dSet); 23 return (dSet.Tables[0].Rows); 24 } 25 } 26 27 public static void GetNextDepartment(object row, 28 out string name, 29 out string groupName) 30 { 31 DataRow theRow = (DataRow)row; 32 name=(string)theRow["Name"]; 33 groupName=(string)theRow["GroupName"]; 34 } 35 };
解压函数:
1 using System; 2 using System.Data; 3 using System.Data.SqlClient; 4 using System.Data.SqlTypes; 5 using System.IO; 6 using System.IO.Compression; 7 using Microsoft.SqlServer.Server; 8 9 public partial class UserDefinedFunctions 10 { 11 [Microsoft.SqlServer.Server.SqlFunction] 12 public static SqlBytes BinaryDecompress(SqlBytes inputBinary) 13 { 14 // 在此处放置代码 15 byte[] inputBytes = (byte[])inputBinary.Value; 16 17 using (MemoryStream memStreamIn = new MemoryStream(inputBytes)) 18 { 19 using (GZipStream s = new GZipStream(memStreamIn, CompressionMode.Decompress)) 20 { 21 using (MemoryStream memStreamOut = new MemoryStream()) 22 { 23 for (int num = s.ReadByte(); num != -1; num = s.ReadByte()) 24 { 25 memStreamOut.WriteByte((byte)num); 26 } 27 return (new SqlBytes(memStreamOut.ToArray())); 28 } 29 } 30 } 31 } 32 };
SQL SERVER 2008中用C#定义压缩与解压缩函数相关推荐
- SQL Server 2008新特性之压缩备份(backup compression)
背景 当我们升级.迁移或者重建数据库时,你是否为将一个大数据库文件(动不动上100GB)的传输而烦劳呢?当你在配置数据库镜像的时候,你是否也曾因为超大备份文件的移动而抓耳挠腮呢?当你需要跨地域传输数据 ...
- 详细介绍微软SQL Server 2008
SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本.这篇文章详细介绍了Microsoft SQL Ser ...
- 微软 Sql Server 2008
详细介绍微软SQL Server 2008 http://dev.yesky.com/264/7681264_4.shtml 2007-11-25 09:00 作者: 戴羽 出处: IT专家网 责任编 ...
- SQL Server 2005与SQL Server 2008 的区别
随时随地管理您的数据 SQL Server 2008 在 Microsoft 的数据平台上发布,帮助您的组织随时随地管理任何数据.它可以将结构化.半结构化和非结构化文档的数据(例如图像和音乐)直接存储 ...
- SQL SERVER 2008传递表值参数
在以前的SQL SERVER中,存储过程和自定义函数只允许传递标量参数.SQL SERVER 2008中允许定义自定义表类型,并传递给存储过程或自定义函数. CREATE TABLE Inventor ...
- SQL Server 2008 创建标量值函数、存储过程
在运用数据库的过程中,需要用到标量值函数以及存储过程. 仅以SQL Server 2008为例,对标量值函数以及存储过程的流程进行说明(标量值函数以及存储过程当中的代码不在这里讲述) 标量值函数 打开 ...
- SQL server 2008 定义数据类型
1. 字符数据类型 字符数据类型包括varchar.char.nvarchar.nchar.text以及ntext.这些数据类型用于存储字符数据.varchar和char类型的主要区别是数据填充.如果 ...
- SQL Server 2008行数据和页数据压缩解密
SQL Server的性能主要取决于磁盘I/O效率,提高I/O效率某种程序上就意味着提高性能.SQL Server 2008提供了数据压缩功能来提高磁盘I/O. 数据压缩意味着减小数据的有磁盘占用量, ...
- 《SQL Server 2008从入门到精通》--20180716
1.锁 当多个用户同时对同一个数据进行修改时会产生并发问题,使用事务就可以解决这个问题.但是为了防止其他用户修改另一个还没完成的事务中的数据,就需要在事务中用到锁. SQL Server 2008提供 ...
最新文章
- UE capability与 双连接相关的参数。
- Python300篇电子书免费送
- 【LeetCode】0136. 只出现一次的数字
- 批量迁移oracle表存储
- IBM开发单原子存储技术 iPod能存上3万部电影?
- android 弹出PopupWindow后背景逐渐变暗
- CBitmapButton位图按钮简明教程
- cmos和ttl_TTL电平和CMOS电平的区别
- 第 2-1 课:类与 Object + 面试题
- 2017.7.17数据类型
- 常见鸟的种类及特点_常见乌龟的品种及图片大全!
- Letter Combinations of a Phone Number
- Hello, world!
- php 不懂英文symfony2,请问symfony2一些使用心得
- GBase数据库产品介绍
- YOLO+PaddleOCR实现车牌检测识别
- 汉字编码对照表(gb2312/unicode/utf8)
- 递归回溯法求数独全部解
- Vue 使用特殊字体
- 一些常用的免费接口,再也不怕找不到免费API了
热门文章
- 字符串操作 c语言,C语言字符串操作(示例代码)
- b类 蚂蚁金服_【面经】超硬核面经,已拿蚂蚁金服Offer!!
- 如何选择漏电保护器规格型号_三相四线漏电保护器型号要如何选
- spring3.2 aop 搭建 (1)
- html插音乐怎么设置样式,是否可以设置html5音频标签的样式?
- svn服务器搭建和使用_简单使用nodejs搭建一个静态服务器
- webpack:多文件、多环境、跨域处理、热加载
- 互联网公司面试经历(转载)
- 8大排序算法图文讲解
- Keras在mnist上的CNN实践,并且自定义loss函数曲线图