操作ACCESS的类CADOConn
[cpp]
// ADOConn.h: inte易做图ce 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++ ,