当前位置:数据库 > Access >>

操作ACCESS的类CADOConn

[cpp]
// ADOConn.h: interface for the CADOConn class.  
//  
//////////////////////////////////////////////////////////////////////  
 
#if !defined(AFX_ADOCONN_H__6FC87078_9BAB_4B1F_B205_E932FD387E09__INCLUDED_)  
#define AFX_ADOCONN_H__6FC87078_9BAB_4B1F_B205_E932FD387E09__INCLUDED_  
 
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF")  
 
#define ado_Field_Str 202  
#define ado_Field_Text 203  
#define ado_Field_Int 2  
#define ado_Field_Long 3  
#define ado_Field_Float 4  
#define ado_Field_Double 5  
#define ado_Field_Date 7  
#define ado_Field_Byte 17  
 
 
#ifdef _DEBUG  
    #define ASSERT_VALID_STRING( str ) ASSERT( !IsBadStringPtr( str, 0xfffff ) )  
#else   //  _DEBUG  
    #define ASSERT_VALID_STRING( str ) ( (void)0 )  
#endif  //  _DEBUG  
 
class CADOConn   

public: 
    _ConnectionPtr m_pConnection; 
    _RecordsetPtr m_pRecordset; 
    _bstr_t m_strDatabaseName; 
    int m_iDatabaseType; 
     
    CADOConn(); 
    CADOConn(CString m_strDatabaseName); 
    virtual ~CADOConn(); 
    CString GetAppPath(); 
    void InitCADOConn(); 
    void ExitConnect(); 
    _RecordsetPtr& GetRecordSet(CString strSQL); 
    BOOL Open(CString strSQL); 
    BOOL ExecuteSQL(CString strSQL); 
    BOOL MoveFirst(); 
    BOOL MoveNext(); 
    CString GetItemString(int index); 
    int GetItemInt(int index); 
    long GetItemLong(int index); 
    BOOL adoEOF(); 
    CString GetFieldName(int index); 
    int GetFieldsCount(); 
    long GetRecordCount(); 
    BOOL InitList(CListCtrl *listMain); 
    BOOL FillList(CListCtrl *listMain); 
}; 
 
#endif // !defined(AFX_ADOCONN_H__6FC87078_9BAB_4B1F_B205_E932FD387E09__INCLUDED_)  
 
 
 
// ADOConn.cpp: implementation of the CADOConn class.  
//  
//////////////////////////////////////////////////////////////////////  
 
#include "stdafx.h"  
#include "ADOConn.h"  
 
 
#ifdef _DEBUG  
#undef THIS_FILE  
static char THIS_FILE[]=__FILE__; 
#define new DEBUG_NEW  
#endif  
 
//////////////////////////////////////////////////////////////////////  
// Construction/Destruction  
//////////////////////////////////////////////////////////////////////  
 
 
CADOConn::CADOConn() 

    //数据库类型:Access  
    m_iDatabaseType = 1; 
    m_strDatabaseName = _bstr_t("ShopSale.mdb"); 

 
CADOConn::~CADOConn() 

     

 
/************************************************************************
函数名:  CADOConn
作  者:    谭友亮(Charles Tan)
日  期:    2013-3-5
作  用:  将数据库名称传递给m_strDatabaseName,并判断数据库类型
形参数:  strDatabaseName 数据库名称
返回值:  
修改记录:                                             
************************************************************************/ 
CADOConn::CADOConn(CString strDatabaseName) 

    CString strFormat; 
    strDatabaseName.TrimLeft(); 
    strDatabaseName.TrimRight(); 
    m_strDatabaseName = _bstr_t(strDatabaseName); 
    strFormat = strDatabaseName.Right(strDatabaseName.GetLength() - strDatabaseName.ReverseFind('.') - 1); 
 
    if(strFormat == "mdb") 
    { 
        m_iDatabaseType = 1; 
    } 
    if(strFormat == "xls" || strFormat == "xlsx") 
    { 
        m_iDatabaseType = 2; 
    } 

 
/************************************************************************
函数名:  GetAppPath
作  者:    谭友亮(Charles Tan)
日  期:    2013-3-18
作  用:  获取当前程序的可执行文件所在的目录
形参数:  
返回值:  
修改记录:                                             
************************************************************************/ 
CString CADOConn::GetAppPath() 

    char lpFilePath[MAX_PATH]; 
    CString strPath; 
 
    GetModuleFileName(AfxGetInstanceHandle(), lpFilePath, MAX_PATH); 
    strPath = lpFilePath; 
    strPath = strPath.Left(strPath.ReverseFind('\\')); 
 
    return strPath; 

 
/************************************************************************
函数名:  InitCADOConn
作  者:    谭友亮(Charles Tan)
日  期:    2013-3-5
作  用:  初始化数据库连接
形参数:  
返回值:  
修改记录:                                             
************************************************************************/ 
void CADOConn::InitCADOConn() 

    CString toolPath = GetAppPath(); 
 
    //初始化OLE/COM库环境  
    ::CoInitialize(NULL); 
    try 
    { 
       

补充:软件开发 , C++ ,
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,