SQLSERVER調用DLL程式

來源:互聯網
上載者:User

標籤:

在SQL Server中調用dll分為兩個步驟

1.建立一個dll檔案(dll檔案分成3種類型,講其中一種)

2.把dll檔案放進SQL Server的程式集中。然後定義一個Function,就可以通過該Function來引用dll中的函數。

1建立一個dll檔案

  1.1點擊“檔案”->“建立”->“項目”->類庫,把命名空間改成TestDLL,添加如下代碼

(架構必須改為.NET3.5及3.5以下,因為SQL Server 2008隻是支援.NET 3.5及一下,.NET 4.0是2010年發布的,不支援也很正常,C#方法必須是靜態方法,因為靜態函數不用執行個體化類就可以調用)

建立dll程式(求和、小寫字母轉換成大寫字母)

using System;using System.Collections.Generic;using System.Text;namespace TestDLL{    public class Class1    {        //求0到n的和當n小於0時返回0        //方法必須為靜態方法,因為靜態函數不用執行個體化類就可以調用        public static int Calc(int n)        {            int sum;            sum = 0;            if (n>=0)            {                for (int i = 0; i <= n; i++)                {                    sum = sum + i;                }                return sum;            }            else            {                return 0;            }                   }        //將字串轉換成大寫        public static string Todaxie(string s)        {            return s.ToUpper();        }    }}

1.2右擊“項目”,點擊”產生“或者直接按F6

  1.3右擊“項目”,點擊“在檔案資源管理系統中開啟檔案夾”,點擊bin->debug,然後就會看到一個TestDLL.dll檔案。

2在SQL中引用dll檔案

  2.1允許SQL Server允許運行使用者程式集

     在SQL Server中運行如下代碼:

EXEC sp_configure ‘clr enabled‘ , ‘1‘;  --0代表不允許,1代表運行RECONFIGURE; 

其中TestDll是你在資料庫中為這個程式集起的名字。

      2.3建立一個Function,使用該dll檔案

使用如下SQL語句

--轉換成大寫字母create FUNCTION [dbo].[ToUpper](@InputString [nvarchar](500))RETURNS [nvarchar](200) WITH EXECUTE AS CALLERAS EXTERNAL NAME [TestDLL].[TestDLL.Class1].[Todaxie]GO--求和函數CREATE FUNCTION [dbo].[Calc](@n int)  --該函數名字RETURNS int  --傳回型別WITH EXECUTE AS CALLERAS EXTERNAL NAME [TestDLL].[TestDLL.Class1].[Calc]  --調用c#程式集GO

注意一下的那幾個單詞。

TestDLL是指你程式集中dll的名稱。

TestDLL是指dll檔案中那個類的命名空間

Class1是指dll檔案中那個類的類名

Todaxie是指dll檔案中那個被調用的靜態方法

最後,便可以這樣來調用該函數

print dbo.ToUpper(‘abc‘)   --輸出的結果為ABC SELECT dbo.Calc(3)       --輸出的結果為6

 

SQLSERVER調用DLL程式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.