⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbmanager.h

📁 VC++一个数据库的开发
💻 H
字号:
// DBManager.h: interface for the CDBManager class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DBMANAGER_H__E42661C6_FD4D_4240_A22B_E32BEE201C54__INCLUDED_)
#define AFX_DBMANAGER_H__E42661C6_FD4D_4240_A22B_E32BEE201C54__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000



typedef CArray<StClientTalkInfo,StClientTalkInfo&> TalkInfoSet;

class CDBManager  
{
public:
	//构造函数,参数dt指定所使用的数据库类型
	CDBManager(DB_Type dt=_Access);
	virtual ~CDBManager();
public:
	//返回最近出错的信息
	CString GetLastError()
	{
		return m_strErrMsg;
	}

	//使用参数pConnPar打开数据库,操作成功返回TRUE
	//否则返回FALSE,可使用GetLastError()得到错误信息
	BOOL Open(StConnPar* pConnPar);

	//关闭数据库
	void Close();

	//使用lpCommandText所指定的select语句获取满足条件的记录,保存到ts中返回
	//操作成功返回TRUE,否则返回FALSE,可使用GetLastError()得到错误信息
	BOOL GetTalkInformations(TalkInfoSet& ts,LPCTSTR lpCommandText=NULL);

	//执行strSQL所指定的SQL语句
	//操作成功返回TRUE,否则返回FALSE,可使用GetLastError()得到错误信息
	BOOL RunSQLCommand(CString strSQL);

	//根据st的内容来添加、修改数据
	//st.lID为0:添加数据,否则根据id更新数据
	//操作成功返回TRUE,否则返回FALSE,可使用GetLastError()得到错误信息
	BOOL UpdateRecord(StClientTalkInfo& st);

	//删除id为lID的数据记录
	//操作成功返回TRUE,否则返回FALSE,可使用GetLastError()得到错误信息
	BOOL DeleteRecord(LONG lID);
protected:
	//根据数据库的类型执行实际的连接过程,为内部使用函数
	//操作成功返回TRUE,否则返回FALSE,可使用GetLastError()得到错误信息
	BOOL _RealConnectAccess(StConnPar* pConnPar);
	BOOL _RealConnectMSSQL(StConnPar* pConnPar);
	BOOL _RealConnectMYSQL(StConnPar* pConnPar);
	BOOL _RealConnectDB2(StConnPar* pConnPar);
	BOOL _RealConnectOracle(StConnPar* pConnPar);

	//关闭ADO对象
	void CloseAdoObjects();
private:
	//ADO对象
	_ConnectionPtr m_pConnection;
	
	//最近一次错误信息
	CString m_strErrMsg;
	//数据库类型
	DB_Type m_dbType;
};

#endif // !defined(AFX_DBMANAGER_H__E42661C6_FD4D_4240_A22B_E32BEE201C54__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -