CLR函数如何压缩NTEXT类型字段
发表于:2025-11-21 作者:千家信息网编辑
千家信息网最后更新 2025年11月21日,小编给大家分享一下CLR函数如何压缩NTEXT类型字段,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!CLR(公共语言运行库)和Java虚拟机一样也是一个运行时环境,它负责资源管理(内
千家信息网最后更新 2025年11月21日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安全错误
数据库的锁怎样保障安全
南宁一站网网络技术有限公
软件开发部门叫什么
查看本地服务器
湖北服务器机柜哪种好
如何让数据库实时同步
FTP服务器创建与管理
渝北区一站式软件开发服务标志
人教版 网络技术应用 教案
那家软件开发公司好
上海进口服务器代理
忻州网络安全等级保护
服务器硬件
三级数据库技术各知识点分值
南通网络安全教育
杭州crm软件开发平台
数据库管理系统知识总结
软件开发参考文献
糖尿病生物信息数据库
余姚计算机软件开发周期
服务器安全狗有密码怎么卸载
建设农业大数据库的必要性
威海ios软件开发服务公司
山东安卓软件开发企业
我的世界圣诞版的服务器
档案软件开发的工具介绍
守望先锋服务器ip地址是多少
服务器两路电源可以不同源吗
北京软件开发者哪家便宜
数据库主码选择规则
电脑服务器增加带宽