中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > 综合其它
用 C++ Builder 编 Microsoft SQL Server 2000 的扩展存储过程
作者:佚名 时间:2007-09-13 16:32 出处:互连网 责编:月夜寒箫
              摘要:用 C++ Builder 编 Microsoft SQL Server 2000 的扩展存储过程

本文参考文章:

MD5 Hash SQL Server Extended Stored Procedure

作者: Vic Mackey

文章链接: http://www.codeproject.com/database/xp_md5.asp

原文是用 Visual C++ 编的程序, 本文的程序是原文的程序修改成的 C++ Builder 程序。


这个存储过程是计算 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
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有