北京赛车单双技巧 北京赛车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++教程人氣:5698


  本文參考文章:
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


pk10有什么方法平刷
北京赛车单双技巧 北京赛车pk10黑客软件 北京pk10计划免费软件 pk10前二做号工具 pk10专业预测 pk10民间高手 北京pk10挂机选号经验分享模式 pk10冠军3码倍投计划 北京赛车计划app手机版 北京赛车开奖软件 pk10最牛稳赚模式最新 pk10全天免费计划 易算北京pk10准不准 pk10赛车7码技巧 pk10八码滚雪球3期一收
买大乐透彩票的技巧和方法 安徽11选五遗漏 我国股票指数有哪些 我玩龙虎赢了1百万 官方彩票手机投注网站 红酒专业赚钱 河南十一选五基本走势图 0好彩堂一肖一码 福利彩票双色球开奖