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

📄 mtdaorecordset.h

📁 VC6++ program demo source for communication with PLC to read and write data.
💻 H
📖 第 1 页 / 共 2 页
字号:
// 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 + -