虽然MS SQl存储过程自带有加密的方法,但现在外面有很可软件可以解掉。
解决的方法是写DLL或OLE程序,然后在数据库中调用就行了,SQL的很多扩展存储过程就是用DLL
--SQL Server的存储过程调用Com组件
/*--下面的部分在VB中完成
首先我们先用VB 作一个最简单的组件
工程名称: testSQLCOM
类名: TestMath
'函数,计算两个整数相加的结果
Public Function AddMe(a As Long, b As Long) As Long
AddMe = a + b
End Function
编译生成后,我们就可以在 Sql Server 中对这个 Com 组件进行调用了
--*/
/*--下面是SQL中对上面DLL的调用--*/
--定义用到的变量
declare @err int,@src varchar(255),@desc varchar(255)
declare @obj int,@re int
--创建调用实例
exec @err=sp_OACreate 'testSQLCOM.TestMath', @obj out
if @err<>0 goto lberr --如果创建失败,则进行错误处理
--调用DLL中的函数
exec @err=sp_OAMethod @obj,'AddMe',@re out,100,200
if @err<>0 goto lberr --如果调用错误,则进行错误处理
print '返回的结果是:' + str(@re)
--完成后释放
exec sp_OADestroy @obj
return
lberr:
exec sp_oageterrorinfo 0,@src out,@desc out
select cast(@err as varbinary(4)) as 错误号
,@src as 错误源,@desc as 错误描述
下面这个是开发项目时朋友写的,以做参考:)
CREATE FUNCTION SMSFormatMsg (@s1 nvarchar(1000), @s2 nvarchar(1000))
RETURNS nvarchar(1000)
AS
BEGIN
DECLARE @object int
DECLARE @hr int
DECLARE @property varchar(255)
DECLARE @return varchar(255)
DECLARE @src varchar(255), @desc varchar(255)
-- 创建对象实例。
EXEC @hr = sp_OACreate 'SQLOLEProc.CbkSms', @object OUT
IF @hr <> 0
BEGIN
SELECT @return = 'error'
END
-- 调用对象方法。
EXEC @hr = sp_OAMethod @object, 'FormatMsg', @return OUT , @s1, @s2
IF @hr <> 0
BEGIN
SELECT @return = 'error'
END
-- 销毁对象实例。
EXEC @hr = sp_OADestroy @object
IF @hr <> 0
BEGIN
SELECT @return = 'error'
END
RETURN(@return)
END
@注:Original Letters
http://www.cnblogs.com/rolinson/archive/2005/02/26/109540.html
分享到:
相关推荐
6.1 SQL Server存储 6.2 理解索引 6.3 创建、修改和删除索引 6.4 明智地决定何时何地使用何种索引 6.5 维护索引 6.6 小结 第7章 更高级的索引结构 7.1 XML索引 7.2 用户定义的数据类型 ...
第9章 SQLServer存储和索引结构 9.1 SQLServer存储机制 9.1.1 数据库 9.1.2 区段 9.1.3 页 9.1.4 行 9.1.5 稀疏列 9.2 理解索引 9.2.1 平衡树(B.树) 9.2.2 SQLServer中访问数据的方式 9.3 创建、修改和删除索引 ...
6.1 SQL Server存储 6.2 理解索引 6.3 创建、修改和删除索引 6.4 明智地决定何时何地使用何种索引 6.5 维护索引 6.6 小结 第7章 更高级的索引结构 7.1 XML索引 7.2 用户定义的数据类型 ...
第9章 SQLServer存储和索引结构 9.1 SQLServer存储机制 9.1.1 数据库 9.1.2 区段 9.1.3 页 9.1.4 行 9.1.5 稀疏列 9.2 理解索引 9.2.1 平衡树(B.树) 9.2.2 SQLServer中访问数据的方式 9.3 创建、修改和删除索引 ...
6.1 SQL Server存储 6.2 理解索引 6.3 创建、修改和删除索引 6.4 明智地决定何时何地使用何种索引 6.5 维护索引 6.6 小结 第7章 更高级的索引结构 7.1 XML索引 7.2 用户定义的数据类型 ...
6.1 SQL Server存储 6.2 理解索引 6.3 创建、修改和删除索引 6.4 明智地决定何时何地使用何种索引 6.5 维护索引 6.6 小结 第7章 更高级的索引结构 7.1 XML索引 7.2 用户定义的数据类型 ...
6.1 SQL Server存储 6.2 理解索引 6.3 创建、修改和删除索引 6.4 明智地决定何时何地使用何种索引 6.5 维护索引 6.6 小结 第7章 更高级的索引结构 7.1 XML索引 7.2 用户定义的数据类型 ...
6.1 SQL Server存储 6.2 理解索引 6.3 创建、修改和删除索引 6.4 明智地决定何时何地使用何种索引 6.5 维护索引 6.6 小结 第7章 更高级的索引结构 7.1 XML索引 7.2 用户定义的数据类型 ...
摘要:Data Access Application Block 是一个 .NET 组件,包含优化的数据访问代码,可以帮助用户调用存储过程以及向 SQL Server 数据库发出 SQL 文本命令。它返回 SqlDataReader、DataSet 和 XmlReader 对象。您可以...
.net数据访问类 SQL Helper 介绍 摘要:Data Access Application Block 是一个 .NET 组件,包含优化的数据访问代码,可以帮助用户调用存储过程以及向 SQL Server 数据库发出 SQL 文本命令。它返回 SqlDataReader、...
0964 如何调用SQL Server存储过程 563 0965 如何生成SQL数据库脚本 564 0966 SQL Server 2000无法安装的解决办法 565 20.3 其他 565 0967 如何判断记录是否为NULL 565 0968 建立Oracle数据库连接 566 ...
至此,test_procedure存储过程已经完成,经过编译后就可以在其他PL/SQL块或者过程中调用了。 函数与过程具有很大的相似性,此处不再详述。 编辑本段 游标 游标的定义为:用游标来指代一个DML SQL操作返回的...
/*test_procedure可以省略*/ 至此,test_procedure存储过程已经完成,经过编译后就可以在其他PL/SQL块或者过程中调用了。函数与过程具有很大的相似性,此处不再详述。 编辑本段游标 游标的定义为:用游标来指代一...
摘要:Data Access Application Block 是一个 .NET 组件,包含优化的数据访问代码,可以帮助用户调用存储过程以及向 SQL Server 数据库发出 SQL 文本命令。它返回 SqlDataReader、DataSet 和 XmlReader 对象。您可以...
支持sql server导入导出、存储、过程调用 V2.0,2012年2月15日 主要变化:新增ACCESS2007支持,重写大部分代码,重命名为DataPie V2.01,2012年3月1日 新增数据库服务的开启与关闭 V2.04,2012年3月12日 新增...
在Framework1.0下同时连接SqlServer和Oracle的一些体会 XML XPath XPath最通俗的教程(ZZ) XPath中相对路径和绝对路径 XPath 简单语法 Asp.Net(C#)利用XPath解析XML文档示例 XSL .Net框架下的XSLT转换技术简介 一个...