zoukankan
html css js c++ java
在SQL2005中执行.Net代码
1
. 在VS.Net2005中新建”SQL Server 项目”;
2
. 创建数据库并将数据库显式标记为可信。
因为无法立即信任附加到 SQL Server 实例的数据库,所以不允许数据库访问超出数据库范围的资源,直到数据库已显式标记为可信。此外,旨在访问数据库以外资源的模块和带有 EXTERNAL_ACCESS 或 UNSAFE 权限设置的程序集还需要其他条件才能成功运行。
默认情况下,此设置为
OFF
,但是可以使用
ALTER
DATABASE
语句将其设置为
ON
。
create
database
km2db
go
USE
km2db
GO
ALTER
DATABASE
km2db
SET
TRUSTWORTHY
ON
3
. 在SQL
2005
中 启用 "clr enabled" 配置选项;
运行下面的代码
--
启用"clr enabled"配置选项,在.Net Framewrok中执行用户代码.
exec
sp_configure
'
show advanced options
'
,
'
1
'
;
go
reconfigure
;
go
exec
sp_configure
'
clr enabled
'
,
'
1
'
go
reconfigure
;
exec
sp_configure
'
show advanced options
'
,
'
1
'
;
go
--
关闭clr enabled,可以使用
EXEC
sp_configure
'
clr enabled
'
,
0
GO
RECONFIGURE
GO
4
. 如果你的数据库是从 SQL Server 的早期版本升级到 SQL Server
2005
,该数据库将保留其现有的兼容级别。此时你要将兼容级别设为
90
。SQL Server
2005
的所有安装,默认兼容级别均为
90
。
EXEC
sp_dbcmptlevel
'
km2db
'
,
'
90
'
;
GO
5
. 在此项目中单击添加—
>
添加新项,添加存储过程、触发器、用户定义的函数等。
[
Microsoft.SqlServer.Server.SqlProcedure
]
public
static
int
MrFuPro1()
{
//
在此处放置代码
return
2
;
}
[
Microsoft.SqlServer.Server.SqlProcedure
]
public
static void selectProcedure()
{
SqlCommand command
=
new SqlCommand("
select
*
from
zk_preasign");
SqlContext.
Pipe
.ExecuteAndSend(command);
}
[
Microsoft.SqlServer.Server.SqlProcedure
]
public
static
int
AddNum(
int
x,
int
y,out string execResult)
{
int
z
=
x
+
y;
if
(z
>
0
)
{
execResult
=
"结果大于零";
}
else
{
execResult
=
"结果小于等零";
}
return
z;
}
6
. 此时回到sql查询分析器,展开km2db可编程性—
>
存储过程 将看到所有新生成的存储过程。
7
. 在查询分析器中执行存储过程,以检验新生成的存储过程的有效性.
use
km2db
go
declare
@ret
int
exec
@ret
=
mrfupro1
print
@ret
go
exec
selectProcedure
go
declare
@ret2
int
,
@execResult
varchar
(
20
)
exec
@ret2
=
addnum
10
,
20
,
@execResult
output
print
@ret2
print
@execResult
go
8
.如果你在你的程序集中调用了其它dll ,可通过下面的方式在sql2005中注册.
如注册System.Messaging.dll;
CREATE
ASSEMBLY Messaging
AUTHORIZATION
dbo
FROM
'
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Messaging.dll
'
WITH
PERMISSION_SET
=
UNSAFE
GO
8
. 如果你是在客户机上部署你的dll,在sql2005中通过以下方式进行。
--
如新建的sql server项目
--
命名空间为: mrfuDBOP
--
类名为:cMrPro
--
方法为:public static int AddNum(int x,int y,out string execResult)
ALTER
DATABASE
km2db
SET
TRUSTWORTHY
ON
GO
CREATE
ASSEMBLY mrfuDBOP
--
你的程序集命名空间名称
AUTHORIZATION
dbo
FROM
'
F:\mrfuDBOP.dll
'
WITH
PERMISSION_SET
=
UNSAFE
GO
CREATE
PROCEDURE
pro_execAddNum
@ret2
int
,
@execResult
varchar
(
20
) output
AS
EXTERNAL NAME mrfuDBOP.
[
mrfuDBOP.cMrPro
]
.AddNum
GO
SQL2005NewTec
Petshop4.0Architecture
查看全文
相关阅读:
win2003系统网络安装——基于linux+pxe+dhcp+tftp+samba+ris
Linux系统网络安装——基于pxe+dhcp+nfs+tftp+kickstart
写在前面
windows下使用批处理设置环境变量
使用广告终结者屏蔽页面的任意部分
window7 输入什么命令可以快速打开服务管理?? 虚拟机设置了NAT网络连接方式,还是无法上网?
[转]PHP100视频教程(2012-2013版)下载地址及密码
窗口对象的方法 prompt() 用来输入数据
HTML5 canvas标签绘制正三角形 鼠标按下点为中间点,鼠标抬起点为其中一个顶点
javascript弹出框打印某个数值时,弹出NaN?(not a number)
原文地址:https://www.cnblogs.com/furenjun/p/sql2005.html
最新文章
canvas
URL中传递JSON数据
ADO.NET 之断开连接层
ADO.NET之一:连接层
Javascript与C#中使用正则表达式
正则表达式基础
System.Web.UI.HtmlControls
HttpContext.RewritePath
System.Web.Caching.Cache
HttpHandler(处理程序) 和 HttpModule(托管模块)
热门文章
Leetcode练习(Python):回溯算法类:第46题:全排列:给定一个 没有重复 数字的序列,返回其所有可能的全排列。
Leetcode练习(Python):回溯算法类:第22题:括号生成:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
Leetcode练习(Python):字符串类:第227题:基本计算器 II:实现一个基本的计算器来计算一个简单的字符串表达式的值。 字符串表达式仅包含非负整数,+,
Leetcode练习(python):字符串类:第165题:比较版本号:比较两个版本号 version1 和 version2。 如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。
Leetcode练习(Python):字符串类:第43题:字符串相乘:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
Leetcode练习(python):字符串类:第93题:复原IP地址:给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。 有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 '.' 分隔。
Leetcode练习(Python):字符串类:第6题:Z 字形变换:将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。
Leetcode练习(Python):字符串类:第71题:简化路径:以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。
Leetcode练习(python):字符串类:第91题:解码方法:一条包含字母 A-Z 的消息通过以下方式进行了编码: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 给定一个只包含数字的非空字符串,请计算解码方法的总数。
Leetcode练习(python):字符串类:第151题:翻转字符串里的单词:给定一个字符串,逐个翻转字符串中的每个单词。
Copyright © 2011-2022 走看看