91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

阳江市| 赤峰市| 德州市| 崇仁县| 甘孜县| 武冈市| 额尔古纳市| 讷河市| 蒲城县| 台州市| 重庆市| 广东省| 叶城县| 灯塔市| 临武县| 乐至县| 盈江县| 永平县| 丰宁| 巧家县| 香格里拉县| 绍兴县| 嘉定区| 道孚县| 光山县| 烟台市| 乡宁县| 类乌齐县| 酒泉市| 岑巩县| 肥西县| 桐庐县| 吴桥县| 白沙| 湄潭县| 高安市| 西宁市| 扬中市| 新邵县| 尼木县| 合作市|