成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析基于SQL2005的CLR存儲過程

開發 后端
CLR存儲過程提供面向對象的功能,例如封裝、繼承和多態性。現在,相關代碼可以很容易在類和命名空間中進行組織。

CLR存儲過程不是很容易理解的,筆者用簡單的語言對CLR存儲過程進行了詳細的描述,不僅僅從理論,也從實現方法上對其進行了講述,希望對你有所幫助。

在 SQL Server 2005 中,可以在SQL Server實例中使用以下方法創建數據庫對象:基于 Microsoft .NET Framework 公共語言運行時 (CLR) 創建中的程序集使用編程方法創建。能夠利用由CLR提供的眾多編程模型的數據庫對象包括觸發器、存儲過程、函數、聚合函數和類型。

雖然Transact-SQL是專門為數據庫中的直接數據訪問和操作而設計,但是它沒有提供編程構造來使數據操作和計算更加容易。例如,Transact-SQL 不支持數組、集合、for-each 循環、位轉移或類。

CLR存儲過程提供面向對象的功能,例如封裝、繼承和多態性。現在,相關代碼可以很容易在類和命名空間中進行組織。在使用大量服務器代碼時,這樣可以更容易地組織和維護代碼,通過使用托管代碼而實現某些數據庫功能。

對于計算和復雜的執行邏輯,基于CLR的托管代碼比Transact-SQL 更適合,托管代碼的一個優點是類型安全性,它全面支持許多復雜的任務,包括字符串處理和正則表達式。

通過 .NET Framework 庫中提供的功能,可以訪問數千個預生成的類和例程。可以很容易從任何存儲過程、觸發器或用戶定義函數進行訪問。基類庫包括的類提供用于字符串操作、高級數學運算、文件訪問、加密等的功能。

對于幾乎或根本不需要過程邏輯的數據訪問,還是使用 Transact-SQL。對于具有復雜邏輯的CPU密集型函數和過程最好還是使用托管代碼。

我們看如何在Visual Studio 2005中創建基于SQL Server 2005的CLR存儲過程:

我們打開Visual Studio 2005,在對應數據庫欄目下面有個SQL Server項目,新建立一個項目,命名為StoredStu,確定過后會顯示一個數據庫連接對話框,數據庫連接好后,我們在數據庫中有如下兩個表,如下:

StuInfo(學生信息表)
StuInfo(學生信息表)

Nation(民族表)
Nation(民族表)

新建立一個文件,選擇“存儲過程”的選項,命名為StoredStu,在文件中寫入以下的代碼:

  1. using System;  
  2. using System.Data;  
  3. using System.Data.SqlClient;  
  4. using System.Data.SqlTypes;  
  5. using Microsoft.SqlServer.Server;  
  6. public partial class StoredProcedures  
  7. {  
  8.     [Microsoft.SqlServer.Server.SqlProcedure]  
  9.     public static void StoredStu()  
  10.     {  
  11.         // 在此處放置代碼  
  12.         SqlPipe sp = SqlContext.Pipe;  
  13.         string sql = "Select * from StuInfo";  
  14.         using (SqlConnection conn = new SqlConnection
  15. ("context connection=true"))  
  16.         {  
  17.             conn.Open();  
  18.             SqlCommand cmd = new SqlCommand();  
  19.             cmd.CommandType = CommandType.Text;  
  20.             cmd.Connection = conn;  
  21.             cmd.CommandText = sql;  
  22.             SqlDataReader rdr = cmd.ExecuteReader();  
  23.             sp.Send(rdr);  
  24.         }  
  25.     }  
  26.     [SqlProcedure]  
  27.     public static void GetStuInfo(string strNationCode)  
  28.     {  
  29.         string sql = "select Stu.StudentName, Stu.StudentNo, 
  30. Stu.StudentUniversity,Na.NationName from StuInfo Stu inner join 
  31. Nation Na on Stu.NationCode = Na.NationCode  where 
  32. Stu.NationCode = '" + @strNationCode + "'";  
  33.         using (SqlConnection conn = new SqlConnection
  34. ("context connection=true"))  
  35.         {  
  36.             conn.Open();  
  37.             SqlPipe sp = SqlContext.Pipe;  
  38.             SqlCommand cmd = new SqlCommand();  
  39.             cmd.CommandType = CommandType.Text;  
  40.             cmd.Connection = conn;  
  41.             cmd.CommandText = sql;  
  42.             SqlParameter paramstrNationCode =
  43.  new SqlParameter("@strNationCode", SqlDbType.VarChar, 11);  
  44.             paramstrNationCode.Direction = ParameterDirection.Input;  
  45.             paramstrNationCode.Value = strNationCode;  
  46.             cmd.Parameters.Add(paramstrNationCode);  
  47.             SqlDataReader rdr = cmd.ExecuteReader();  
  48.             sp.Send(rdr);  
  49.         }  
  50.     }  
  51. };  
  52.  

現在我們先對其進行編譯,在“生成”菜單中選擇“生成解決方案”,當編譯完工程后,就需要為其進行部署了。同樣選擇“生成”菜單中的“部署解決方案”, 這樣就會自動將寫好的存儲過程部署到 SQL Server 2005 中去。

為了確保SQL可以執行托管代碼,我們還需要在SQL Server 2005中,執行下面的語句:

  1. EXEC sp_configure "clr enabled", 1;   
  2. RECONFIGURE WITH OVERRIDE;   
  3. GO  

執行顯示的結果如下:

“配置選項'clr enabled' 已從0 更改為1。請運行RECONFIGURE 語句進行安裝。”

這樣就可以創建好CLR存儲過程了。

【編輯推薦】

  1. 淺談CLR線程池的缺點及解決方法
  2. CLR線程池的作用與原理淺析
  3. 簡單介紹CLR泛型及其優勢
  4. 淺談CLR 4.0安全模型的運作機制
  5. 微軟MVP教你如何看懂.NET CLR基本術語
責任編輯:阡陌 來源: 中國自學編程網
相關推薦

2009-09-18 14:09:57

SQL CLR存儲過程

2009-09-18 10:55:17

CLR存儲過程

2009-10-22 13:02:47

SQL CLR存儲過程

2011-09-01 16:13:37

Visual StudSQL Server 存儲過程

2009-09-18 10:40:05

CLR存儲過程

2011-03-24 16:23:18

sql2005數據庫

2009-10-22 14:05:55

CLR存儲過程

2009-10-22 18:06:31

CLR存儲過程

2009-10-23 12:44:35

SQL SERVER

2011-07-14 13:38:34

2010-09-06 17:46:48

SQL函數

2009-10-23 11:12:21

SQL Server

2009-10-23 10:08:29

SQL SERVER

2009-03-13 10:03:34

2010-07-06 15:40:49

SQL Server

2009-09-18 09:59:39

C# CLR

2009-10-22 15:09:40

CLR存儲過程

2010-06-28 13:45:16

SQL Server

2009-09-18 13:47:17

CLR類庫

2011-04-07 09:44:23

SQL2000數據庫SQL2005
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91porn成人精品 | 四虎影音 | 免费v片在线观看 | 欧美精品一区二区在线观看 | 亚洲精品91 | 久久99精品久久久久久青青日本 | 久久中文网 | 国产羞羞视频在线观看 | 美女久久久久 | 欧美一区二区三区大片 | 日本一区二区在线视频 | 亚洲精品国产第一综合99久久 | 国产精品国产三级国产aⅴ入口 | 亚洲一区二区三区高清 | 久久综合九色综合欧美狠狠 | 色就干 | 久久久免费电影 | 日韩视频在线播放 | 91美女视频 | 国产黄色小视频 | 中文字幕第7页 | 伊人伊人网 | 日韩免费视频一区二区 | 日韩亚洲视频 | 精品国产免费一区二区三区五区 | 国产成人精品一区 | 一二区视频 | 国产三级精品三级在线观看四季网 | 99精品欧美一区二区三区 | 精品欧美一区二区三区久久久小说 | 日韩一区二区在线视频 | 日韩在线一区二区三区 | 丁香综合| 国产精品v| 日韩中文字幕一区二区 | 精品国产乱码久久久久久丨区2区 | 国产精品1区| 国产精品96久久久久久 | 欧美精品1区 | 午夜精品久久久久久久星辰影院 | 欧洲精品在线观看 |