c++ builder 存储过程 mysql mssql_C++Builder SQL Server扩展存储过程

本文介绍了如何在C++ Builder中创建SQL Server的扩展存储过程,并提供了一个具体的例子——xp_md5,详细阐述了安装、注册和使用方法。存储过程的源代码包括xp_md5_main.cpp,依赖于OPENDS60.LIB和md5.h、md5.cpp,适用于MSSQL 2000。
摘要由CSDN通过智能技术生成

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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vc++数据库开发资源包 都是过时的技术。 我自己学习用的。 ------------------------- ADO270.CHI ADO270.CHM ADOSQL.CHI ADOSQL.CHM COM.CHM DBLIBC.CHI DBLIBC.CHM DBLIBC.chw ODBCSQL.CHM ODECORE.CHI OLEDB.CHI OLEDB.CHM OLEDBSQL.CHI OLEDBSQL.CHM ─INCLUDE DB2CONST.H DBMCONST.H DTMCONST.H DTSCONST.H DTSFFILE.H DTSPKG.H DTSPUMP.H EQMCONST.H GENCONST.H IFXCONST.H MDSCONST.H MSDADC.H MSDAGUID.H MSDASC.H MSDASQL.H OCLCONST.H ODBCINST.H ODBCOR_G.BAS ODBCSS.H ODBEXT_G.BAS OLEDB.H OLEDBERR.H OLPCONST.H REPAPI.H REPAUTO.H REPENG.BAS REPERR.H REPLDIST.H REPLDSTX.C REPLERRI.C REPLERRX.H REPLINIX.C REPLMRGX.C REPTIM.H REPTIM2.H REPTIM3.H SIMCONST.H SQL.H SQLCA.H SQLCONST.H SQLDA.H SQLDB.H SQLDISTX.H SQLDMO.H SQLDMOID.H SQLEXT.H SQLFRONT.H SQLINITX.H SQLMERGX.H SQLNSDEF.H SQLNSX.H SQLOLEDB.H SQLRES.H SQLRES.IDL SQLRESID.H SQLTYPES.H SQLUCODE.H SRV.H SRVAPI.H SRVCONST.H SRVDBTYP.H SRVMISC.H SRVSTRUC.H SRVTOK.H SRVTYPES.H TFMCONST.H TRANSACT.H TXCOORD.H TXDTC.H UMLCONST.H UMXCONST.H VDI.H VDIERROR.H VDIGUID.H WN95SCM.H XACTOMSG.H XOLEHLP.H ─SAMPLES ├─ADO │ UNZIP_AD │ ├─BACKUP │ UNZIP_BA │ ├─DBLIB │ UNZIP_DB │ ├─DESKTOP │ SAMPLE.M │ SAMPLEUP │ UNZIP_DE │ ├─DTS │ UNZIP_DT │ ├─ESQLC │ UNZIP_ES │ ├─MISC │ UNZIP_MI │ ├─MSDTC │ UNZIP_MS │ ├─ODBC │ UNZIP_OD │ ├─ODS │ UNZIP_OD │ ├─OLEAUTO │ UNZIP_OL │ ├─SQLDMO │ UNZIP_SQ │ ├─SQLNS │ UNZIP_SQ │ ├─SQLREPL │ UNZIP_SQ │ ├─UTILS │ UNZIP_UT │ └─XML UNZIP_XM ─SDK MDACSDKLITE. XMLSDK.MSI ─X86LIB ADME.LIB CAW32.LIB DACDLL.LIB DTCCFG.LIB DTCCM.LIB DTCHELP.LIB DTCTRACE.LIB DTCUIC.LIB DTCUIS.LIB DTCUTIL.LIB LOGMGR.LIB MSDASC.LIB MSDTC.LIB MSDTCPRX.LIB MSDTCTM.LIB NTWDBLIB.LIB ODBC32.LIB ODBCBCP.LIB ODBCCP32.LIB OLEDB.LIB OLEDBD.LIB OPENDS60.LIB SAMPDTCR.LIB SQLAKW32.LIB SVCSRVL.LIB UTIL.LIB W95SCM.LIB XOLEHLP.LIB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值