热点推荐
ZOL首页 > 软件资讯 > 技巧应用 > 常用软件 > C++Builder SQL Server扩展存储过程

C++Builder SQL Server扩展存储过程


华军资讯 【转载】 2010年07月30日 09:29 评论

    SQL Server 的扩展存储过程 (Extended Stored Procedure, 简称 XP) 是通过在 MSSQL 数据库注册封装在 .dll 里面的函数实现的, 而这个 .dll 应该按照 M\$ 提供的规则, 并且要连接 MSSQL 的库文件。

    【安装方法】 

    ① 通过执行 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()

相关搜索:应用技巧 
看完本文后的感受:文章感受排行>>
频道热词:微信  手机QQ  12306  
视觉焦点
新浪微博