信息产业培训网

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

http://www.miiceic.org.cn   2008-11-14 16:30:57   中程在线   浏览数:
关键字:C++ Builder SQL Server

  这个存储过程是计算 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()

  详细的内容请下载源程序看,比较简单。

  函数的说明请参阅 MSDN 的这里:

  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odssql/ods_6_ref_02_8k2t.asp

来源:中国自学编程网
相关连接
最新评论
*以下网友发言不代表中程在线网站的观点和看法
    我要评论

    请您注意
    1、遵守中华人民共和国的各项有关法律规定
    2、承担一切因您的行为而导致的法律责任
    3、本网留言管理人员有权删除其管辖留言内容
    4、您在本网的留言本网有权在网站内转载和引用
    5、参与本留言即表明您已经阅读并接受上述条款
    我爱研发网希赛网软件测试网中电华信太平洋电脑网天空网
    电脑爱好者泡泡网华军软件霏凡软件站软件开发网腾讯网
    eNet下载汉化新世纪小熊在线BIOS之家数动连线....[更多]
    关于我们 | 网站地图 | 周边住宿 | 行车路线 | 联系我们 | 网站律师 | 意见反馈 | 虚位以待 | 友情链接
    中程在线(北京)科技有限公司 版权所有
    总 部:北京市海淀区青东商务楼A座西四层
    企业培训部:010-52636110 52636106 就业培训部:010-68716925 68716926
    邮 件:training@miiceic.org.cn
    京ICP备06053134号
    Copyright © 2005-2008 Miiceic.org.cn All Rights Reserved