📄 mtdaorecordset.h
字号:
// MTDaoRecordset.h: interface for the CMTDaoRecordset class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_MTDAORECORDSET_H__AF2EC5F0_1722_455F_8407_AC68B467139F__INCLUDED_)
#define AFX_MTDAORECORDSET_H__AF2EC5F0_1722_455F_8407_AC68B467139F__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <afxmt.h>
#include <afxdao.h>
class CMTDaoRecordset;
////////////////////////////////////////////////////////////////////////
// CDaoDatabase - a DAO Database
class CMTDaoDatabase : public CDaoDatabase
{
friend CMTDaoRecordset;
protected:
static CCriticalSection m_cs;
DECLARE_DYNAMIC(CMTDaoDatabase)
// Constructors
public:
CMTDaoDatabase(CDaoWorkspace* pWorkspace = NULL) : CDaoDatabase(pWorkspace)
{
}
virtual void Create(LPCTSTR lpszName,
LPCTSTR lpszLocale = dbLangGeneral, int dwOptions = 0)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoDatabase::Create(lpszName, lpszLocale, dwOptions);
}
virtual void Open(LPCTSTR lpszName, BOOL bExclusive = FALSE,
BOOL bReadOnly = FALSE, LPCTSTR lpszConnect = _T(""))
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoDatabase::Open(lpszName, bExclusive, bReadOnly, lpszConnect);
}
virtual void Close()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoDatabase::Close();
}
// Attributes
public:
BOOL IsOpen() const
{
return CDaoDatabase::IsOpen();
}
BOOL CanUpdate()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoDatabase::CanUpdate();
}
BOOL CanTransact()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoDatabase::CanTransact();
}
CString GetName()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoDatabase::GetName();
}
CString GetConnect()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoDatabase::GetConnect();
}
CString GetVersion()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoDatabase::GetVersion();
}
short GetQueryTimeout()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoDatabase::GetQueryTimeout();
}
void SetQueryTimeout(short nSeconds)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoDatabase::SetQueryTimeout(nSeconds);
}
long GetRecordsAffected()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoDatabase::GetRecordsAffected();
}
// Operations
public:
void Execute(LPCTSTR lpszSQL, int nOptions = dbFailOnError)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoDatabase::Execute(lpszSQL, nOptions);
}
void DeleteTableDef(LPCTSTR lpszName)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoDatabase::DeleteTableDef(lpszName);
}
void DeleteQueryDef(LPCTSTR lpszName)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoDatabase::DeleteQueryDef(lpszName);
}
void CreateRelation(LPCTSTR lpszName, LPCTSTR lpszTable,
LPCTSTR lpszForeignTable, long lAttributes,
LPCTSTR lpszField, LPCTSTR lpszForeignField)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoDatabase::CreateRelation(lpszName, lpszTable, lpszForeignTable, lAttributes, lpszField, lpszForeignField);
}
void CreateRelation(CDaoRelationInfo& relinfo)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoDatabase::CreateRelation(relinfo);
}
void DeleteRelation(LPCTSTR lpszName)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoDatabase::DeleteRelation(lpszName);
}
short GetTableDefCount()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoDatabase::GetTableDefCount();
}
void GetTableDefInfo(int nIndex, CDaoTableDefInfo& tabledefinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoDatabase::GetTableDefInfo(nIndex, tabledefinfo, dwInfoOptions);
}
void GetTableDefInfo(LPCTSTR lpszName, CDaoTableDefInfo& tabledefinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoDatabase::GetTableDefInfo(lpszName, tabledefinfo, dwInfoOptions);
}
short GetRelationCount()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoDatabase::GetRelationCount();
}
void GetRelationInfo(int nIndex, CDaoRelationInfo& relinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoDatabase::GetRelationInfo(nIndex, relinfo, dwInfoOptions);
}
void GetRelationInfo(LPCTSTR lpszName, CDaoRelationInfo& relinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoDatabase::GetRelationInfo(lpszName, relinfo, dwInfoOptions);
}
short GetQueryDefCount()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoDatabase::GetQueryDefCount();
}
void GetQueryDefInfo(int nIndex, CDaoQueryDefInfo& querydefinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoDatabase::GetQueryDefInfo(nIndex, querydefinfo, dwInfoOptions);
}
void GetQueryDefInfo(LPCTSTR lpszName, CDaoQueryDefInfo& querydefinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoDatabase::GetQueryDefInfo(lpszName, querydefinfo, dwInfoOptions);
}
// Implementation
public:
virtual ~CMTDaoDatabase()
{
}
#ifdef _DEBUG
virtual void AssertValid() const
{
CDaoDatabase::AssertValid();
}
virtual void Dump(CDumpContext& dc) const
{
CDaoDatabase::Dump(dc);
}
#endif
};
////////////////////////////////////////////////////////////////////////
// CMTDaoRecordset - the result of a query or base table browse
class CMTDaoRecordset : public CDaoRecordset
{
// Constructor
public:
CMTDaoRecordset(CDaoDatabase* pDatabase = NULL) : CDaoRecordset(pDatabase)
{
}
DECLARE_DYNAMIC(CMTDaoRecordset)
virtual void Open(int nOpenType = AFX_DAO_USE_DEFAULT_TYPE,
LPCTSTR lpszSQL = NULL, int nOptions = 0)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoRecordset::Open(nOpenType, lpszSQL, nOptions);
}
virtual void Open(CDaoQueryDef* pQueryDef,
int nOpenType = dbOpenDynaset, int nOptions = 0)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoRecordset::Open(pQueryDef, nOpenType, nOptions);
}
virtual void Open(CDaoTableDef* pTableDef,
int nOpenType = dbOpenTable, int nOptions = 0)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoRecordset::Open(pTableDef, nOpenType, nOptions);
}
virtual void Close()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoRecordset::Close();
}
BOOL CanUpdate() const
{
return CDaoRecordset::CanUpdate();
}
BOOL CanAppend() const
{
return CDaoRecordset::CanAppend();
}
BOOL CanScroll() const
{
return CDaoRecordset::CanScroll();
}
BOOL CanRestart()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoRecordset::CanRestart();
}
BOOL CanTransact()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoRecordset::CanTransact();
}
BOOL CanBookmark()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoRecordset::CanBookmark();
}
BOOL IsOpen() const
{
return CDaoRecordset::IsOpen();
}
BOOL IsBOF() const
{
return CDaoRecordset::IsBOF();
}
BOOL IsEOF() const
{
return CDaoRecordset::IsEOF();
}
BOOL IsDeleted() const
{
return CDaoRecordset::IsDeleted();
}
BOOL IsFieldDirty(void* pv)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoRecordset::IsFieldDirty(pv);
}
BOOL IsFieldNull(void* pv)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoRecordset::IsFieldNull(pv);
}
BOOL IsFieldNullable(void* pv)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoRecordset::IsFieldNullable(pv);
}
CString GetName()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoRecordset::GetName();
}
short GetType()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoRecordset::GetType();
}
short GetEditMode()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoRecordset::GetEditMode();
}
CString GetSQL() const
{
return CDaoRecordset::GetSQL();
}
COleDateTime GetDateCreated()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoRecordset::GetDateCreated();
}
COleDateTime GetDateLastUpdated()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoRecordset::GetDateLastUpdated();
}
COleVariant GetLastModifiedBookmark()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoRecordset::GetLastModifiedBookmark();
}
CString GetValidationRule()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoRecordset::GetValidationRule();
}
CString GetValidationText()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoRecordset::GetValidationText();
}
CString GetCurrentIndex()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoRecordset::GetCurrentIndex();
}
void SetCurrentIndex(LPCTSTR lpszIndex)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoRecordset::SetCurrentIndex(lpszIndex);
}
long GetRecordCount()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
return CDaoRecordset::GetRecordCount();
}
// Operations
public:
// Cursor operations
void MoveNext()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoRecordset::MoveNext();
}
void MovePrev()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoRecordset::MovePrev();
}
void MoveFirst()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoRecordset::MoveFirst();
}
void MoveLast()
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoRecordset::MoveLast();
}
virtual void Move(long lRows)
{
CSingleLock sl(&CMTDaoDatabase::m_cs, TRUE);
CDaoRecordset::Move(lRows);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -