xynt.net - 星云网络

首页| 新闻资讯| 业界动态| 操作系统| win应用| 设计教程| 电脑医院| 网络应用| 数据库| 明星八卦| 编程学习| 常用工具| 网络安全
算命| 病毒木马| 游戏心得| 系统工具| QQ攻备| 游戏下载| 游戏工具| 周公解梦| 服务器| 情感男女| 精美图库| 生活空间| 手机学院
资讯通告:
搜索: 您现在的位置: 星云网络-电脑技术网 >> 文章中心 >> 网络学院 >> 数据库 >> 正文

C++ Builder实现Microsoft SQL Server 2000 的扩展存储过程

2008-06-10 13:50:46 来源:网络转载 作者:佚名 【 点击:
这个存储过程是计算 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:\pathname\xp_md5.dll'
如果注册的文件不包含路径,只有文件名,MSSQL会在这个文件夹里面找这个.dll
C:\Program Files\Microsoft SQL Server\MSSQL\Binn

② 创建用来支持 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()
详细的内容请下载源程序看,比较简单。
Tags: 59岁教授对17岁女生的“爱抚疗法”事件到底伤了谁? ,小心“黑屏”破解工具暗藏木马  
责任编辑:2008xynt
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】   
  • 上一篇文章:
  • 下一篇文章: 没有了
  • 姓 名: * Oicq:
    评 分: 1分 2分 3分 4分 5分
    评论内容:
    推荐..
    关于我们 - 联系我们 - 广告服务 - 友情链接 - 免责声明 - 用户留言 -