📄 mdboperator.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 + -