C++ Builder实现SQL2000数据库 的扩展存储过程_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

C++ Builder实现SQL数据库 2000 的扩展存储过程

作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0

本篇关键词:存储过程扩展数据库
黑客防线网安网讯:    这个存储过程是计算 MD5 值的,可以用来进行密码认证加密等。 SQL Server 的扩展存储过程 (Extended Stored Procedure, 简称 XP) 是通过在 MSSQL 数据库注册封装在 .dll 里面的函数实现...

    这个存储过程是计算 MD5 值的可以用来进行密码认证加密等
SQL Server 的扩展存储过程 (Extended Stored Procedure, 简称 XP) 是通过在 MSSQL 数据库注册封装在 .dll 里面的函数实现的,
而这个 .dll 应该按照 M$ 提供的规则, 并且要连接 MSSQL 的库文件由于 C++ Builder 自带的 MSSQL 库文件 OPENDS60.LIB 比较旧,
本文提供新版本的 OPENDS60.LIB 库文件, 支持 MSSQL 2000 版本的。

--------------------------------------------------------------------------------
【安装方法】
① 通过执行 SQL 语句注册存储过程:
打开 Master 数据库然后执行下面 SQL 语句
EXEC sp_addextendedproc 'xp_md5', 'd:pathnamexp_md5.dll'
如果注册的文件不包含路径,只有文件名,MSSQL会在这个文件夹里面找这个.dll
C:Program FilesMicrosoft SQL ServerMSSQLBinn

② 创建用来支持 select 语句的 MD5 函数 fn_md5
打开想要执行这个存储过程的用户数据库,执行下面的 SQL:

CREATE FUNCTION fn_md5 (@string VARCHAR(8000))
RETURNS CHAR(32) AS
BEGIN
DECLARE @hash CHAR(32)
EXEC master.dbo.xp_md5 @string, @hash OUTPUT
RETURN @hash
END

【使用方法】
① 直接执行, 由于 xp_md5 在 master 数据库里面, 所以前面必须有 master.
EXEC master.dbo.xp_md5 'Hello world!'
② 通过 fn_md5 支持 select 语句, 这个函数在用户当前使用的数据库里面.
SELECT dbo.fn_md5('Hello world!')

【程序说明】
xp_md5.bpr 存储过程 C++ Builder 6.0 工程文件
OPENDS60.LIB 由于 C++ Builder 自带的文件比较旧,支持 MSSQL 7 的,这个程序带了一个 OPENDS60.LIB 文件,支持 MSSQL 2000
md5.h Christophe Devine 原作,没做任何修改
md5.cpp Christophe Devine 原作,没做任何修改
xp_md5_main.cpp 存储过程主程序文件,根据 Vic Mackey 的存储过程修改的

在创建工程的时候用 DLL 向导生成就可以了,没有特殊的要求,存储过程函数需要按规定的格式:
__declspec(dllexport) SRVRETCODE WINAPI xpname(SRV_PROC* pSrvProc)
其中 xpname 是存储过程的名,其他的都是规定的格式不能变
另外存储过程 .dll 文件也必须包含这个函数:
__declspec(dllexport) ULONG WINAPI __GetXpVersion()
详细的内容请下载源程序看,比较简单。

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-11439-1.html
网站维护教程更新时间:2012-03-21 03:21:23  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer