部署CLR
存储过程上面的示例
代码需要进行编译才能通过存储过程来调用。在命令行中执行下面的命令来编译这些代码并创建类库DLLMSSQLTipsCLRLib.dll: CSC/target:libraryStoredProcedures.cs/out:MSSQLTipsCLRLib.dll假设你使用的是Microsoft.NET框架的第二版本,那么你可以在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727目录下看到CSC.EXE。执行下面的T-SQL
脚本来创建这个存储过程: ALTERDATABASEmssqltipsSETTRUSTWORTHYONGOUSEmssqltipsGOCREATEASSEMBLYMSSQLTipsCLRLibFROM'C:\mssqltips\MSSQLTipsCLRLib.dll'WITHPERMISSION_SET=EXTERNAL_ACCESSGOCREATEPROCEDUREdbo.GetListOfFiles@pathNVARCHAR(256),@patternNVARCHAR(64),@recursiveBITASEXTERNALNAMEMSSQLTipsCLRLib.StoredProcedures.GetListOfFiles在编译了这个代码到类库(.dll)之后,CREATEASSEMBLY命令就被执行了,它将这个DLL与ASSEMBLY数据库对象关联起来。FROM条件从句必须指向DLL的实际路径。PERMISSION_SET必须设置为EXTERNAL_ACCESS,因为.NET代码将访问SQLServer之外的文件系统。TRUSTWORTHY选项被设置为on,以允许外部访问。最后,CREATEPROCEDURE命令的EXTERNAMENAME将这个集合、类和函数与这个存储过程名称关联起来。要执行这个存储过程,执行下面的脚本:EXECdbo.GetListOfFiles'C:\mssqltips','*.*',0你将看到类似于下面的输出,这取决于你选择的文件夹的内容例如,一个只有一列、每一行是一个文件的结果集:图2接下来的步骤在这里下载示例脚本并执行从一个CLR存储过程返回结果集。记住,当在Microsoft.NET框架中有满足你需求的函数时,使用SQLServer的CLR可能是个很好的解决方法。直接在类下写语句??????
Class.forName(driver)
Connection con=DriverManager.getConnection(strConn)
请放到类的方法里
评论列表(0条)