网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.利用C语言实现计算机图像处理的方.
.Visual FoxPro3.0经验14条.
.VC下揭开“特洛伊木马”的隐藏面.
.传递焦点的五种方法.
.C语言的常用库函数使用方法分析及.
.重载CreateParams实现无标题栏的.
.自己写程序揭开cmos密码.
.谈C++继承中的重载、覆盖和隐藏.
.数据结构辅导---栈和队列(2).
.c语言最经典的链表.
.C\C++建立IPC连接之后续操作.
.C语言嵌入式系统编程修炼之内存操.
.改进的发牌程序.
.C++中的Singleton类的实现(1).
.TDBGrid控件中对多个记录的处理.
.偶写的链表、堆栈、队列的集合操.
.汇编语言的高级语言特性.
.国家计算机二级考试程序修改与设.
.舍弃浮躁, 50条重要的C++学习建议.
.例程详析动态链接库.

C++中用BCB编SQL Server2000的扩展存储过程

发表日期:2008-3-8



  本文参考文章:
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
上一篇:C++中将ListView中的内容导出到Word和Excel(新) 人气:693
下一篇:C++中数组和指针类型的关系 人气:392
浏览全部C/C++的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐