转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
一个功能强大的用ADO 访问数据库的类         ★★★★

一个功能强大的用ADO 访问数据库的类

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1363 更新时间:2009/4/23 10:48:54

        ADO 访问数据库是基于COM ,访问速度快、使用方便等特点。我在实际的工作当中发现可以把一些常用的方法构造成一个类,不妨叫她为 CAdoEx 类吧。下面分别是头文件、实现文件。要是有不妥之处请给我发邮件 luoshizhen@163.net

*说明:--------------------------------------------*/
/*  注 stdafx.h 里要有下面两行          */
/*  #include <comdef.h>                 */  
/*  #import "c:\program files\common files\system\ado\msado15.dll" no_namespace  rename("EOF","adoEOF")  */
/*  AfxOleInit() ;      ADO 初始在应用的主线程初始化时调用  */
/*说明:--------------------------------------------*/


/*   以下是类的成员说明      */
#ifndef _ADOEX_H_
#define _ADOEX_H_

#include "stdafx.h"

class CAdoEx 
{
public:
 CAdoEx();
 virtual ~CAdoEx();

 /*打开 Ado 数据库*/
 BOOL OpenAdo(LPCTSTR lpDSN ,LPCTSTR lpUID ,LPCTSTR lpPWD); 
   

 file://--------------------------------------------//
        /*     ADO 通用查询函数                       */ 
        /*     调用参数: 正确的SQL 查询语句.           */
        /*     可以对一个表查询,也可以对多个表查询      */
        /*     返回一个纪录集                         */
        /*     如果成功返回一个非空的纪录集            */
        /*     如果失败则返回一个NULL的纪录集          */
 _RecordsetPtr Query(LPCTSTR lpQuery);
 file://--------------------------------------------//
  
 file://--------------------------------------------//
 /*连接数据库                                  */
 BOOL CloseAdo();  
 file://--------------------------------------------//
   
 file://--------------------------------------------//
        /*     ADO 通用SQL语句执行函数                 */ 
        /*     调用参数: 正确的SQL 查询语句.           */
        /*     可以对一个表插入 修改 删除 操作          */
        /*     如果成功返回真                          */
        /*     如果失败返回假                          */
        BOOL Execute(LPCTSTR lpExcute);
 file://--------------------------------------------//

protected:
  _RecordsetPtr retRecordsetPtr;
   char lpBuff[500];
  HRESULT hResult;
   BOOL m_bOpen;               
   _ConnectionPtr m_pConnection;
};

#endif

/*------------------以下为实现文件-------------------------
/*   说明:  这是一个 Ado 类,可以实现用ADO对数据库操作     */
/*   1. 连接数据库                                        */
/*   2. 查询数据库的一个或关联表                          */
/*   3. 执行SQL 语句插入 修改 删除 操作                   */
/*   4. 关闭数据库                                        */

#include "stdafx.h"
#include "AdoEx.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

CAdoEx::CAdoEx()
{
   m_bOpen = FALSE ;
  
   /*初始化连接的实例*/
   m_pConnection.CreateInstance(_uuidof(Connection)) ;
}

CAdoEx::~CAdoEx()
{

  if(retRecordsetPtr !=NULL)
   retRecordsetPtr->Close() ;
  retRecordsetPtr = NULL ;

  CloseAdo() ;

  m_bOpen = FALSE ;
}
/*打开 Ado 数据库*/
BOOL CAdoEx::OpenAdo(LPCTSTR lpDSN ,LPCTSTR lpUID ,LPCTSTR lpPWD )
{
 BOOL bRet = FALSE ;
   
 if(m_bOpen) return TRUE ;

 try
 {
       hResult = m_pConnection->Open(lpDSN,lpUID,lpPWD,0)  ;
      
       if (SUCCEEDED(hResult))
    {
             TRACE0("Open ADO Database  Succeeded !\n") ;
             m_bOpen = TRUE ;
      bRet    = TRUE ;
    }
    else
    {
      m_bOpen = FALSE ;
             bRet    = FALSE ;
    }
 } /*end of try*/
 catch(_com_error e )
 {
  memset(lpBuff,0x00,500) ;
  sprintf(lpBuff,"打开数据库时发生异常 \n:%s",e.ErrorMessage());
  AfxMessageBox(lpBuff) ;
 }

 return bRet ;
}

/*     ADO 通用查询函数                      */ 
/*     调用参数: 正确的SQL 查询语句.         */
/*     可以对一个表查询,也可以对多个表查询   */
/*     返回一个纪录集                        */
/*     如果成功返回一个非空的纪录集          */
/*     如果失败则返回一个NULL的纪录集        */
_RecordsetPtr CAdoEx::Query(LPCTSTR lpQuery)
{
  retRecordsetPtr = NULL ;
  _variant_t vRecsAffected ;

  if(!m_bOpen) return NULL ;

  try
  {
    retRecordsetPtr = m_pConnection->Execute(lpQuery,
                                     &vRecsAffected,
                              adOptionUnspecified) ;
  }
  catch(_com_error e)
  {
  memset(lpBuff,0x00,500) ;
  sprintf(lpBuff,"查询数据库表时发生异常 \n:%s",e.ErrorMessage());
  AfxMessageBox(lpBuff) ;
  }

   return retRecordsetPtr ;
}

/*     ADO 通用SQL语句执行函数               */ 
/*     调用参数: 正确的SQL 查询语句.         */
/*     可以对一个表插入 修改 删除 操作       */
/*     如果成功返回真                        */
/*     如果失败返回假                        */
BOOL CAdoEx::Execute(LPCTSTR lpExcute)
{
  BOOL  bRet  = FALSE ;
  _variant_t vRecsAffected ;

  if(!m_bOpen) return NULL ;

  try
  {
     m_pConnection->Execute(lpExcute,
                      &vRecsAffected,
                   adOptionUnspecified) ;
    bRet = TRUE ;
  }
&nbs

[1] [2]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台