中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CLR函數如何壓縮NTEXT類型字段

發布時間:2021-12-03 14:54:53 來源:億速云 閱讀:167 作者:小新 欄目:編程語言

小編給大家分享一下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> /// 壓縮數據  /// summary> /// <param name="data">param> /// <returns>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> /// 解壓數據  /// summary> /// <param name="data">param> /// <returns>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類型字段”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

clr
AI

凤山市| 阳西县| 仙桃市| 蓝山县| 天峨县| 乐昌市| 西华县| 上栗县| 抚顺县| 喀喇沁旗| 威宁| 华容县| 沙雅县| 社旗县| 乌拉特后旗| 神木县| 日照市| 都江堰市| 黄骅市| 闵行区| 建始县| 定西市| 吕梁市| 上高县| 武夷山市| 娄底市| 奉化市| 肥东县| 济南市| 浦江县| 敦化市| 淄博市| 平陆县| 会东县| 东阿县| 尚义县| 阿勒泰市| 合江县| 邵武市| 芒康县| 芜湖市|