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

📄 mdboperator.h

📁 visual c++ 实例编程
💻 H
字号:
//*******************************************************
//* Copyright (C) 2003
//* All rights reserved
//* FileName: MdbOperator.h
//* Version: 1.8
//* Author: robindy  
//* Email: robin_dy@163.com
//*******************************************************
#if !defined(AFX_MDBOPERATOR_H__9B2716D6_E743_415E_B976_435C1296680F__INCLUDED_)
#define AFX_MDBOPERATOR_H__9B2716D6_E743_415E_B976_435C1296680F__INCLUDED_

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

#include <afxdao.h>

class AFX_EXT_CLASS CMdbOperator 
{
public:

	CMdbOperator();
	virtual ~CMdbOperator();	

	//*******************打开数据库*******************
	//参数1:数据库文件所在的路径
	//参数2:TRUE独占方式打开 FALSE非独占方式打开
	//参数3:TRUE只读方式打开 FALSE非只读方式打开
	//返回值:TRUE成功打开 FALSE打开失败
	//************************************************
	BOOL DaoOpenMdb(const CString& strDatabasePath, 
		            BOOL bExclusive = FALSE, 
					BOOL bReadOnly = TRUE);

	//*******************关闭数据库*******************
	void DaoCloseMdb();

	//*******************打开表***********************
	//参数1:表名
	//参数2:打开方式:dbAppendOnly dbForwardOnly dbSeeChanges   
	//dbDenyWrite   dbDenyRead   dbReadOnly   dbInconsistent   dbConsistent   
	//返回值:TRUE成功 FALSE失败
	//************************************************
	BOOL OpenRecordset(const CString& tableName, int nOptions = dbReadOnly);

	//*******************取得指定字段的值**************
	//参数1:字段名
	//返回值:字段值
	//*************************************************
	CString GetFieldValue( CString strFieldName );

	//******************取得当前打开记录集的指针*******
	//返回值:指向当前打开记录的指针,通过该指针可以使用CDaoRecordset类的功能,
	//但是需要自行编写异常处理代码
	//*************************************************
	CDaoRecordset* GetRecordSet(); 

	//******判断当前记录集指针是否已经到记录集尾*******
	//返回值:TRUE已到记录集尾 FALSE未到记录集尾
	//*************************************************
	BOOL IsEOF();

	//****************向前移动记录集指针***************
	void MovePrev();

	//****************向后移动记录集指针***************
	void MoveNext();	

	//****************获取指定表的信息*****************
	//参数1:表名
	//返回值:结构体CDaoTableDefInfo
	//*************************************************
	CDaoTableDefInfo GetTableInfo(const CString& TableName);

	//****************获取当前打开数据库中表的个数****
	int GetTableCount();		
	//****************获取当前打开表的名称************
	CString GetCurrentTableName();
	//******获取当前打开数据库中指定编号的表的名称****
    CString GetTableName(int nIndex);
	//**********获取当前打开表的指定编号的字段名称****
	CString GetFieldName(int nIndex);
	//****************获取当前打开表中的字段个数******
	int GetFieldCount();

	//**************添加一条记录*********************
	//参数1:该条记录的所有字段值,顺序与以GetFieldName()获得的顺序一致
	//返回值:TRUE成功 FALSE失败
	//该函数未完善,实际添加记录时,请使用GetRecordSet()获得记录集指针,
	//直接使用CDaoRecordset提供的函数来添加记录
	//***********************************************
	BOOL AddRecord(const CStringArray& fieldvalues);
	
	//**************修改一条记录*********************
	//同AddRecord
	BOOL ModifyRecord(const CStringArray& fieldvalues);

	//*************匹配记录搜索*********************
	//参数1:查询关键字queryString
	//参数2:查询的字段名fieldName
	//参数3:查询到的记录在记录集中的位置pos
	//返回值:查询到的记录数,为-1表示失败
	//备注:查询到的记录所在位置保存在pos中
	//*********************************************
	int  SearchRecord(const CString queryString, const CString fieldName,CUIntArray& pos);

	//************删除当前记录********************
	BOOL DeleteRecord();
	//************删除所有记录********************
	BOOL DeleteAllRecord();

	//******将COleVariant数据类型转换为CString****
	CString VariantToStr(COleVariant var);

	//*********是否显示出错提示对话框*************
	//参数:TRUE显示 FALSE不显示
	void ShowErrorMsg(BOOL bShow);

private:

	CString			m_strDatabasePath;		//当前打开数据库的路径
	int				m_ntables;				//数据库中表的个数
	CStringArray	m_TableNames;			//数据库中的表名
	CString			m_strTableName;			//当前打开数据库的表名
	CDaoRecordset*	m_pRecordset;			//指向打开数据库表的指针
	CDaoDatabase	m_mdbDatabase;			//打开数据库的句柄
	int				m_nFields;				//当前打开表中的字段数
	CStringArray	m_FieldNames;			//当前打开表中的字段名
	BOOL			m_bShowErrorMsg;		//是否显示出错信息

	void GetTableNameAndCount();			//获取数据库中的表名和表的个数	
	void DaoErrorMsg(CDaoException* e);     //显示出错信息

};

#endif // !defined(AFX_MDBOPERATOR_H__9B2716D6_E743_415E_B976_435C1296680F__INCLUDED_)

⌨️ 快捷键说明

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