`
Newhaven
  • 浏览: 60285 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQL Server的存储过程或自定义函数调用Com组件

阅读更多

虽然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

 

分享到:
评论

相关推荐

    SQL Server 2008高级程序设计 4/6

     6.1 SQL Server存储  6.2 理解索引  6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  ...

    SQL.Server.2008编程入门经典(第3版).part2.rar

    第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 创建、修改和删除索引 ...

    SQL Server 2008高级程序设计 2/6

     6.1 SQL Server存储  6.2 理解索引  6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  ...

    SQL.Server.2008编程入门经典(第3版).part1.rar

    第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 创建、修改和删除索引 ...

    SQL Server 2008高级程序设计 5/6

     6.1 SQL Server存储  6.2 理解索引  6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  ...

    SQL Server 2008高级程序设计 6/6

     6.1 SQL Server存储  6.2 理解索引  6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  ...

    SQL Server 2008高级程序设计 1/6

     6.1 SQL Server存储  6.2 理解索引  6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  ...

    SQL Server 2008高级程序设计 3/6

     6.1 SQL Server存储  6.2 理解索引  6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  ...

    .net数据访问类 SQL Helper 类

    摘要:Data Access Application Block 是一个 .NET 组件,包含优化的数据访问代码,可以帮助用户调用存储过程以及向 SQL Server 数据库发出 SQL 文本命令。它返回 SqlDataReader、DataSet 和 XmlReader 对象。您可以...

    sqlhelper类

    .net数据访问类 SQL Helper 介绍 摘要:Data Access Application Block 是一个 .NET 组件,包含优化的数据访问代码,可以帮助用户调用存储过程以及向 SQL Server 数据库发出 SQL 文本命令。它返回 SqlDataReader、...

    C#开发经验技巧宝典

    0964 如何调用SQL Server存储过程 563 0965 如何生成SQL数据库脚本 564 0966 SQL Server 2000无法安装的解决办法 565 20.3 其他 565 0967 如何判断记录是否为NULL 565 0968 建立Oracle数据库连接 566 ...

    PL/SQL Developer8.04官网程序_keygen_汉化

     至此,test_procedure存储过程已经完成,经过编译后就可以在其他PL/SQL块或者过程中调用了。  函数与过程具有很大的相似性,此处不再详述。 编辑本段 游标  游标的定义为:用游标来指代一个DML SQL操作返回的...

    PLSQLDeveloper下载

    /*test_procedure可以省略*/ 至此,test_procedure存储过程已经完成,经过编译后就可以在其他PL/SQL块或者过程中调用了。函数与过程具有很大的相似性,此处不再详述。 编辑本段游标  游标的定义为:用游标来指代一...

    SQLHelper.cs

    摘要:Data Access Application Block 是一个 .NET 组件,包含优化的数据访问代码,可以帮助用户调用存储过程以及向 SQL Server 数据库发出 SQL 文本命令。它返回 SqlDataReader、DataSet 和 XmlReader 对象。您可以...

    DataPie数据库导入导出工具 v3.4源码2012810

    支持sql server导入导出、存储、过程调用 V2.0,2012年2月15日 主要变化:新增ACCESS2007支持,重写大部分代码,重命名为DataPie V2.01,2012年3月1日 新增数据库服务的开启与关闭 V2.04,2012年3月12日 新增...

    asp.net知识库

    在Framework1.0下同时连接SqlServer和Oracle的一些体会 XML XPath XPath最通俗的教程(ZZ) XPath中相对路径和绝对路径 XPath 简单语法 Asp.Net(C#)利用XPath解析XML文档示例 XSL .Net框架下的XSLT转换技术简介 一个...

Global site tag (gtag.js) - Google Analytics