日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
CLR函數(shù)實現(xiàn)字符串排序七步通

下面我們來給大家編寫一個簡短的CLR函數(shù),來實現(xiàn)SQL Server 2005的功能。接下來讓我們來看看CLR函數(shù)具體是如何實現(xiàn)這一功能的,希望可以給大家?guī)韼椭?/p>

步驟1:啟用CLR集成

首先需要在SQL Server外圍應(yīng)用配置器中進行設(shè)置,確保SQL Server已經(jīng)啟用了CLR。如圖1所示:

選擇“功能的外圍應(yīng)用配置器”,顯示如圖2所示界面:

確?!皢⒂肅LR集成”這一項打勾,然后點“確定”按鈕。

步驟2:編寫CLR代碼

首先,我們需要做的是編寫CLR代碼。采用VB.NET或者C#來寫都可以,在這個例子中我們將使用VB.NET 。

下面的范例代碼中,創(chuàng)建了一個名為CLRFunctions的類,該類中包含了一個名為SortString的函數(shù)。SortString函數(shù)對輸入的一個字符串變量進行排序,并返回一個排序后的字符串。

第一步:使用內(nèi)置的VB函數(shù),把 “,”作為分隔符分割輸入的字符串,得到一個字符串?dāng)?shù)組;

第二步:采用Array.Sort,對數(shù)組中的數(shù)據(jù)進行排序列。這一部如果采用T-SQL來寫的話,更為簡單。

將代碼保存到SQLServerCLRSortString.vb文件中。

 
 
 
 
  1. Public Class CLRFunctions   
  2. Public Shared Function SortString(ByVal Name As String) As String  
  3. Dim i As Integer  
  4. Dim returnValue As String  
  5. Dim stringArray() As String  
  6. ' 分割字符串,得到數(shù)組  
  7. stringArray = Split(Name, ",")  
  8. ' 對數(shù)組進行排序  
  9. Array.Sort(stringArray)  
  10. '初始化返回值字符串  
  11. returnValue = "" 
  12. For i = LBound(stringArray) To UBound(stringArray)  
  13. returnValuereturnValue = returnValue & stringArray(i) & ","  
  14. Next i  
  15. Return returnValue  
  16. End Function  
  17. End Class 

步驟3:編譯CLR代碼

為了使用此代碼,需要先對代碼進行編譯。在命令行狀態(tài)下,可以使用vbc.exe應(yīng)用程序來編譯代碼。具體命令如下所示:

 
 
 
 
  1. C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\vbc /target:library C:\SQLServerCLRSortString.vb 

 vbc.exe應(yīng)用程序,在.NET 2.0框架目錄中可以找到,不同的服務(wù)器或桌面因安裝路徑不同可能會有差異。編譯成功后,將得到C:\SQLServerCLRSortString.dll這個DLL文件。把DLL拷貝到我們的SQL Server機器上

步驟4:在SQL Server中注冊DLL

代碼編譯通過后,您需要與SQL Server中注冊DLL。要實現(xiàn)到這一目的,可以在要使用該函數(shù)的數(shù)據(jù)庫中能運行這些命令。注冊的目的,就是將外部創(chuàng)建的DLL與SQL Server內(nèi)部對象進行綁定,這樣外部DLL中的函數(shù)就可以和SQL Server中的正常函數(shù)一樣進行調(diào)用了。

在下面的函數(shù)中,我們可以看到引用CLRFunctions.CLRFunctions.SortString由三個部分組成:

 
 
 
 
  1. *CLRFunctions – 裝配引用     
  2. *CLRFunctions – VB.net 代碼中所引用的類名    
  3. *SortString – VB.net代碼中所引用的函數(shù)    
  4. CREATE ASSEMBLY CLRFunctions FROM 'C:\SQLServerCLRSortString.dll'    
  5. GO    
  6. CREATE FUNCTION dbo.SortString    
  7. (    
  8. @name AS NVARCHAR(255)    
  9. )    
  10. RETURNS NVARCHAR(255)    
  11. AS EXTERNAL NAME CLRFunctions.CLRFunctions.SortString    
  12. GO   

步驟5:創(chuàng)建測試用的數(shù)據(jù)表和數(shù)據(jù)

可以創(chuàng)建一個示例表和一些測試數(shù)據(jù),來檢驗一下,具體代碼如下所示:

 
 
 
 
  1. CREATE TABLE testSort (data VARCHAR(255))   
  2. GO  
  3. INSERT INTO testSort VALUES('apple,pear,orange,banana,grape,kiwi')  
  4. INSERT INTO testSort VALUES('pineapple,grape,banana,apple')  
  5. INSERT INTO testSort VALUES('apricot,pear,strawberry,banana')  
  6. INSERT INTO testSort VALUES('cherry,watermelon,orange,melon,grape')  

步驟6:測試

如果要測試CLR函數(shù),在步驟4執(zhí)行后示例表和數(shù)據(jù)創(chuàng)建完之后,可以運行下面的SELECT語句,分別列出排序前和排序后的數(shù)據(jù),兩者便于對比。

 
 
 
 
  1. SELECT data, dbo.sortString(data) as sorted FROM testSort 

步驟7:刪除CLR函數(shù)

如果希望徹底刪除CLR函數(shù),您需要將之前創(chuàng)建的VB文件以及編譯過程中產(chǎn)生的DLL都刪除。

運行下面的T-SQL代碼可以刪除之前創(chuàng)建的對象。

 
 
 
 
  1. DROP FUNCTION dbo.SortString   
  2. GO  
  3. DROP ASSEMBLY CLRFunctions  
  4. GO  
  5. DROP TABLE testSort  
  6. GO 

快試試吧,很簡單的!

【編輯推薦】

  1. .NET CLR性能評測
  2. 分析CLR Via的方法參數(shù)相關(guān)
  3. 淺析C# CLR的語言特性
  4. 解析C# CLR的15個細節(jié)
  5. 淺析CLR Via C#構(gòu)造函數(shù)

新聞名稱:CLR函數(shù)實現(xiàn)字符串排序七步通
轉(zhuǎn)載注明:http://www.5511xx.com/article/coicjge.html