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
查看全文
相关阅读:
647. 回文子串
109. 有序链表转换二叉搜索树
第1篇 第1章 走进推荐系统
推荐系统为什么要分测试集与训练集
面向对象案例 烤地瓜 搬家具python实现
python面向对象方法
python实现学生信息系统
随机数据的生成
Python中numpy的应用
pandas 的index用途
原文地址:https://www.cnblogs.com/furenjun/p/sql2005.html
最新文章
Yacc example on Ubuntu 17.04
How Can AI Control Us
Reinstall Ubuntu Operating System with USB
How to Initialize Neural Networks in PyTorch with Pretrained Nets in TensorFlow or Theano
Linux Programming
Machine Learning Interview
Lex Example on Ubuntu 16.04
Derive Modified Gram Schmidt QR Decomposition Algorithm from Gram Schmidt Orthogonalisation (part 2)
Derive Modified Gram Schmidt QR Decomposition Algorithm from Gram Schmidt Orthogonalisation (part 1)
build your own website 1 -- how to install Apache Server
热门文章
Leetcode No.171 Excel Sheet Column Number Excel表格列数(c++实现)
Leetcode No.168 Excel Sheet Column Title Excel表列名称(c++实现)
Leetcode No.125 Valid Palindrome(c++实现)
Leetcode No.67 Add Binary二进制求和(c++实现)
Leetcode No.58 Length of Last Word最后一个单词的长度(c++实现)
Leetcode No.28 Implement strStr()字符串匹配(c++实现)
Leetcode No.20 Valid Parentheses有效的括号(c++实现)
Leetcode No.14 Longest Common Prefix最长公共前缀(c++实现)
Leetcode No.13 Roman to Integer罗马数字转整数(c++实现)
c++ vector用法详解
Copyright © 2011-2022 走看看