CLR函数如何压缩NTEXT类型字段
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下CLR函数如何压缩NTEXT类型字段,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!CLR(公共语言运行库)和Java虚拟机一样也是一个运行时环境,它负责资源管理(内
千家信息网最后更新 2026年11月02日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安全错误
数据库的锁怎样保障安全
互联网络科技
互联网科技活动banner
科技互联网项目
互联网和科技创新
互联网与科技发展
唐信互联网科技
贷财互联网科技
宜安科技 互联网金融
无锡溥仪互联网科技有限公司
互联网实体化科技化
阿里巴巴算科技企业还是互联网
互联网还是高科技吗
米聚互联网科技南京有限公司排面
允成互联网科技有限公司融资
互联网行业科技股
朱啸虎曾投资哪些互联网科技企业
2021互联网科技公司排名
南京一网一红互联网科技有限公司
北京天晋互联网科技有限公司
亚光科技低轨卫星互联网
互联网络科技
互联网科技公司经营范围
互联网科技与金融科技
奇酷互联网科技
大白互联网科技
滨湖区互联网智能科技产品供应
科技互联网的估值
科技大学互联网
广州有谷有贝互联网科技有限公司
恒生科技指数 中概互联网