北京赛车单双技巧 北京赛车pk10黑客软件 北京pk10计划免费软件 pk10前二做号工具 pk10专业预测 pk10民间高手 北京pk10挂机选号经验分享模式 pk10冠军3码倍投计划 北京赛车计划app手机版 北京赛车开奖软件 pk10最牛稳赚模式最新 pk10全天免费计划 易算北京pk10准不准 pk10赛车7码技巧 pk10八码滚雪球3期一收

C++中用BCB编SQL Server2000的扩展存储过程

3/8/2008来源:C/C++教程人气:5325


  本文参考文章:
md5 Hash SQL Server Extended Stored PRocedure
作者: Vic Mackey
文章链接: http://www.codeproject.com/database/XP_md5.asp
原文是用 Visual C++ 编的程序, 本文的程序是原文的程序修改成的 C++ Builder 程序。

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

--------------------------------------------------------------------------------
【安装方法】
① 通过执行 SQL 语句注册存储过程:
打开 Master 数据库,然后执行下面 SQL 语句
EXEC sp_addextendedproc 'xp_md5', 'd:\pathname\xp_md5.dll'
假如注册的文件不包含路径,只有文件名,MSSQL会在这个文件夹里面?#33402;?#20010;.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 ?#28304;?#30340;文件比较旧,支持 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()
具体的内容请下载源程序看,比较简单。
函数的说明请参阅 MSDN 的这里:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odssql/ods_6_ref_02_8k2t.asp


pk10有什么方法平刷
北京赛车单双技巧 北京赛车pk10黑客软件 北京pk10计划免费软件 pk10前二做号工具 pk10专业预测 pk10民间高手 北京pk10挂机选号经验分享模式 pk10冠军3码倍投计划 北京赛车计划app手机版 北京赛车开奖软件 pk10最牛稳赚模式最新 pk10全天免费计划 易算北京pk10准不准 pk10赛车7码技巧 pk10八码滚雪球3期一收
电脑彩票app 为什么瑞波币涨得慢 甘肃十一选五开奖结 反恐精英cs1.8 攒劲甘肃麻将的规律 四灵和四骸 ag电子竞技俱乐部价值 博洛尼亚的石头 拜仁慕尼黑手机主题