千家信息网

CLR函数如何压缩NTEXT类型字段

发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,小编给大家分享一下CLR函数如何压缩NTEXT类型字段,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!CLR(公共语言运行库)和Java虚拟机一样也是一个运行时环境,它负责资源管理(内
千家信息网最后更新 2024年11月27日CLR函数如何压缩NTEXT类型字段

小编给大家分享一下CLR函数如何压缩NTEXT类型字段,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

CLR(公共语言运行库)和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和垃圾收集),并保证应用和底层操作系统之间必要的分离。为了提高平台的可靠性,以及为了达到面向事务的电子商务应用所要求的稳定性级别,CLR还要负责其他一些任务,比如监视程序的运行。按照.NET的说法,在CLR监视之下运行的程序属于"受管理的"(managed)代码,而不在CLR之下、直接在裸机上运行的应用或者组件属于"非受管理的"(unmanaged)的代码 。可以在 SQL Server 实例中创建可在 Microsoft .NET Framework 公共语言运行时 (CLR) 中创建的程序集中进行编程的数据库对象。可以充分利用公共语言运行时所提供的丰富的编程模式的数据库对象包括聚合函数、函数、存储过程、触发器以及类型。下面给大家举个sql server 2005 使用clr函数压缩ntext类型字段例子:

vs2005为数据新建一个数据库工程。

using System;  using System.Data;  using System.Data.SqlClient;  using System.Data.SqlTypes;  using Microsoft.SqlServer.Server;  using System.IO;  using System.IO.Compression;  using System.Text;  public partial class Gzip  {  [Microsoft.SqlServer.Server.SqlFunction]  public static SqlChars GzipToString(SqlBytes gBytes)  {  byte[] bytes = gBytes.Value;  bytes = Decompress(bytes);  string str = Encoding.GetEncoding(936).GetString(bytes);  SqlChars sqlchars = new SqlChars(str);  return (sqlchars);  }  [Microsoft.SqlServer.Server.SqlFunction]  public static SqlBytes StringToGzip(SqlChars chars)  {  byte[] bytes = Encoding.GetEncoding(936).GetBytes(chars.Buffer);  bytes = Compress(bytes);  SqlBytes gBytes = new SqlBytes(bytes);  return (gBytes);  }  #region 采用.net系统自带Gzip压缩类进行流压缩  ///  /// 压缩数据  /// summary> /// param> /// returns> public static byte[] Compress(byte[] data)  {  byte[] bData;  MemoryStream ms = new MemoryStream();  GZipStream stream = new GZipStream(ms, CompressionMode.Compress, true);  stream.Write(data, 0, data.Length);  stream.Close();  stream.Dispose();  //必须把stream流关闭才能返回ms流数据,不然数据会不完整  //并且解压缩方法stream.Read(buffer, 0, buffer.Length)时会返回0  bData = ms.ToArray();  ms.Close();  ms.Dispose();  return bData;  }  ///  /// 解压数据  /// summary> /// param> /// returns> public static byte[] Decompress(byte[] data)  {  byte[] bData;  MemoryStream ms = new MemoryStream();  ms.Write(data, 0, data.Length);  ms.Position = 0;  GZipStream stream = new GZipStream(ms, CompressionMode.Decompress, true);  byte[] buffer = new byte[1024];  MemoryStream temp = new MemoryStream();  int read = stream.Read(buffer, 0, buffer.Length);  while (read > 0)  {  temp.Write(buffer, 0, read);  read = stream.Read(buffer, 0, buffer.Length);  }  //必须把stream流关闭才能返回ms流数据,不然数据会不完整  stream.Close();  stream.Dispose();  ms.Close();  ms.Dispose();  bData = temp.ToArray();  temp.Close();  temp.Dispose();  return bData;  }  #endregion  }

给数据库增加一个varbinary(MAX) 字段,把压缩以后的转移过来以后删除原来的字段。

然后使用clr函数的这两个如下

select:  SELECT top 10 dbo.GzipToString([content1]) FROM [content_02]  insert: insert into   [content_02] ([content1]) values(dbo.StringToGzip('123abc'))

看完了这篇文章,相信你对"CLR函数如何压缩NTEXT类型字段"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

数据 运行 函数 字段 类型 数据库 程序 语言 应用 管理 代码 对象 篇文章 系统 中创 监视 编程 必要 操作系统 两个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 access数据库财务应用 南京分发软件开发怎么做 数据库是否应该容器化 DBC数据库增加表格 逻辑数据库设计的主要交付物是 佛山优通网络技术有限公司 数据库防水坝是什么 深圳佑辰网络技术有限公司 1 软件开发成本有多高 期刊资源的相关数据库 黄岛区建站宝网络技术服务中心 网络安全日是由来 数据库是文件吗 谈谈你对数据库技术与应用的理解 魔兽怀旧服避开主播服务器 软件开发驻场排行榜 河南联通dns服务器是多少 pc版软件开发 csgo绑定服务器怎么办 我的世界50人服务器要多少钱 三卡两号网络安全主题班会 天津数据库安全箱代理商 万方数据库智能分析在哪 医疗行业中网络安全 网络安全管理工作制度 世界互联网大会新科技 数据库设置字段的格式 应用层软件开发是指什么 战地1怎么选择没外挂的服务器 网络安全主题绘画作品 简单版
0