在SQL Server引用dll的流程

在SQL Server中引用dll分为两个步骤

1.创建一个dll文件(dll文件分成3种类型,详细讲其中两种)

2.把dll文件放进SQL Server的程序集中。然后定义一个Function,就可以通过该Function来引用dll中的函数。

 

创建一个dll文件

  1.点击“文件”->“新建”->“项目”->类库,把命名空间改成StringHelp,添加如下代码

框架必须改为.NET3.5及3.5以下,因为SQL Server 2008只是支持.NET 3.5及一下,.NET 4.0是2010年发布的,不支持也很正常)

namespace StringHelp              //命名空间
{
    public  class ClassConvert      //类名
    {
   //把输入的字符串中的小写字母变成大写字母
        public static string  ToUpper(string vInputString)  //函数必须为静态函数,应为静态函数不用实例化类就可以调用
        {
            return vInputString.ToUpper();  
        }
    }
}

  第一种dll类型

using System.Text;
using System.Net;
using System.IO;

namespace GetNewsByHttp
{
    public class ClassGetNews
    {
    //该函数是通过HttpWebRequest来获取网页
//具体代码可以忽略,但是要记住这里使用到了网络
public static string GetCnblogs(string vNewsUrl) { string returnValue = ""; HttpWebRequest Request =(HttpWebRequest) WebRequest.Create(vNewsUrl); Request.Method = "GET"; HttpWebResponse Response = (HttpWebResponse)Request.GetResponse(); StreamReader Reder =new StreamReader( Response.GetResponseStream(),Encoding.UTF8); returnValue= Reder.ReadToEnd(); Reder.Close(); Response.Close(); return returnValue; } } }

 

  第二种dll类型,该类型的dll需要进行非对称的签名,切记切记  

  为什么要划分dll类型,待会在SQL Server中添加dll中会有进一步的说明。

  2.右击“项目”,点击”生成“或者直接按F6

  3.右击“项目”,点击“在文件资源管理系统中打开文件夹”,点击bin->debug,然后就会看到一个StringHelp.dll文件。

 

在SQL中引用dll文件

  1.允许SQL Server允许运行用户程序集

              在SQL Server中运行如下代码

EXEC sp_configure 'clr enabled' , '1';  --0代表不允许,1代表运行
RECONFIGURE;
clr enabled的官方说明

  2.根据不同的dll文件方式

       首先说明一下这里的dll的划分方式。根据dll中的代码使用到不同的资源,在SQL Server中运行程序集(dll)是,必须指明是在以下三种安全级别的哪一种下运行。

  • SAFE(它只能通过进程中的托管提供程序在服务器内执行计算和数据访问)
  • EXTERNAL_ACCESS(适用于代码需要访问服务器之外的资源(如文件、网络、注册表和环境变量))
  • UNSAFE(程序集并非可验证为安全的,或程序集要求进一步访问受限资源(如 Microsoft Win32 API))

        这是关于创建程序集是指定安全性问题,详情点击官网解析

    2.1第一种dll

                直接使用SQL语句创建程序集

create assembly TestDll from 'C:\Users\聪\Documents\Visual Studio 2012\Projects\StringHelp\StringHelp\obj\Debug\StringHelp.dll'

 

    其中TestDll是你在数据库中为这个程序集起的名字。

    

    2.2第二中dll

         方法一:

            (1)过程序集文件创建非对称密钥。 

       (2)必须创建映射到此非对称密钥的登录名

       (3)向此登录名授予 EXTERNAL ACCESS ASSEMBLY 或 UNSAFE ASSEMBLY 权限。

USE master  --这个数据库一定是master
--创建非对称密钥
CREATE
ASYMMETRIC KEY SQLCLRTestKey FROM EXECUTABLE FILE = 'C:\Users\聪\Documents\visual studio 2012\Projects\GetNewsByHttp\GetNewsByHttp\bin\Debug\GetNewsByHttp.dll'
--创建登录名
CREATE LOGIN SQLCLRTestLogin FROM ASYMMETRIC KEY SQLCLRTestKey
--把权限授予给该登录名
GRANT EXTERNAL ACCESS ASSEMBLY TO SQLCLRTestLogin;

 

      方法二:

      在SQL Server中执行如下代码

ALTER DATABASE myDataBase SET TRUSTWORTHY ON

 

                此方法不推荐,存在安全性问题,详情看官网解析  

             注意,如果你的dll文件中,引用了其dll文件,那么必须在引入dll之前,先引用其程序集。如你的dll文件使用到了system.web dll文件,那么必须在引用TestDll之前

       以同样的方法引用system.web dll文件。

     2.创建一个Function,使用该dll文件

         使用如下SQL语句

    

CREATE FUNCTION dbo.ToUpper  --该函数名字
(
     @InputString as nvarchar(500)
)
RETURNS nvarchar(200)     --返回类型
AS EXTERNAL NAME TestDll.[StringHelp.ClassConvert].ToUpper 
Create Function GetNews
(
    @FileName nvarchar(50)
)
returns nvarchar(max)
as EXTERNAL NAME SQLCLRTest.[GetNewsByHttp.ClassGetNews].GetCnblogs

 

注意一下标红的那几个单词。

TestDll是指你程序集中dll的名称。

StringHelp是指dll文件中那个类的命名空间

ClassConvert是指dll文件中那个类的类名

ToUpper是指dll文件中那个被调用的静态方法

最后,便可以这样来调用该函数

print dbo.ToUpper('abc')

输出的结果为ABC    

print dbo.GetNews('http://www.cnblogs.com/WEI-CONG/p/4324715.html')                      

输出的结果为本网页的html代码

最后感谢该文章给我的启示http://www.cnblogs.com/zhongxinWang/p/4211179.html

                                                每天进步一点点

                                                2015-03-09

  

转载于:https://www.cnblogs.com/WEI-CONG/p/4324715.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要连接SQL Server数据库,需要使用PB9(PowerBuilder 9)并导入相应的DLL文件。首先,确保已安装了PB9开发环境以及SQL Server数据库。 在PB9中连接SQL Server数据库,首先需要获取SQL Server的连接参数,包括服务器名称、数据库名称、用户名和密码等。接下来,按照以下步骤进行操作: 1. 打开PB9开发环境,在打开的PB9界面中选择“库”菜单,然后选择“导入外部功能”; 2. 在弹出窗口中选择“新建”按钮,进入新建功能的界面; 3. 在新建功能的界面中,选择“库文件类型”为“DLL”,然后点击“浏览”按钮,选择SQL ServerDLL文件; 4. 找到合适的SQL ServerDLL文件,一般为“dbmsdskr9.dll”,然后点击“确定”按钮; 5. 在导入的DLL文件列表中,选择SQL ServerDLL文件,然后点击“下一步”按钮; 6. 在下一个步骤中,根据SQL Server的连接参数设置相应的属性,如服务器名称、数据库名称、用户名和密码等; 7. 在设置完属性后,点击“完成”按钮,完成DLL文件的导入; 8. 导入DLL文件后,可以在PB9中使用相应的连接对象或数据窗口对象来连接SQL Server数据库,进行数据操作。 以上是使用PB9连接SQL Server数据库的简要步骤。需要注意的是,根据不同的SQL Server版本和具体的环境配置,可能会有一些差异。在实际操作中,可以参考相关的PB9和SQL Server的文档或教程来进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值