用BCB编SQL Server2000的扩展存储进程
当前位置:以往代写 > C/C++ 教程 >用BCB编SQL Server2000的扩展存储进程
2019-06-13

用BCB编SQL Server2000的扩展存储进程

用BCB编SQL Server2000的扩展存储进程

这个存储进程是计较 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

    关键字:

在线提交作业