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

📄 oledbmfcmiscview.cpp

📁 vc++6.0数据库编程大全一书得各个章节得源码,比较详细.可以仔细参照学习!
💻 CPP
字号:
// OLEDBMFCMiscView.cpp : implementation of the COLEDBMFCMiscView class
//

#include "stdafx.h"
#include "OLEDBMFCMisc.h"

#include "OLEDBMFCMiscSet.h"
#include "OLEDBMFCMiscDoc.h"
#include "OLEDBMFCMiscView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// COLEDBMFCMiscView

IMPLEMENT_DYNCREATE(COLEDBMFCMiscView, COleDBRecordView)

BEGIN_MESSAGE_MAP(COLEDBMFCMiscView, COleDBRecordView)
	//{{AFX_MSG_MAP(COLEDBMFCMiscView)
	ON_COMMAND(ID_RECORD_SETBOOKMARK, OnRecordSetbookmark)
	ON_COMMAND(ID_RECORD_GOTOBOOKMARK, OnRecordGotobookmark)
	ON_COMMAND(ID_RECORD_DISPLAYPOSITION, OnRecordDisplayposition)
	ON_COMMAND(ID_RECORD_CHANGEACCESSOR, OnRecordChangeaccessor)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// COLEDBMFCMiscView construction/destruction

COLEDBMFCMiscView::COLEDBMFCMiscView()
	: COleDBRecordView(COLEDBMFCMiscView::IDD)
{
	//{{AFX_DATA_INIT(COLEDBMFCMiscView)
		// NOTE: the ClassWizard will add member initialization here
	m_pSet = NULL;
	//}}AFX_DATA_INIT
}

COLEDBMFCMiscView::~COLEDBMFCMiscView()
{
}

void COLEDBMFCMiscView::DoDataExchange(CDataExchange* pDX)
{
	COleDBRecordView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(COLEDBMFCMiscView)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
	DDX_Text(pDX, IDC_COLUMN1, m_pSet->m_strDepartmentCode, 51);
	DDX_Text(pDX, IDC_COLUMN2, m_pSet->m_strDepartmentName, 51);
}

BOOL COLEDBMFCMiscView::PreCreateWindow(CREATESTRUCT& cs)
{
	return COleDBRecordView::PreCreateWindow(cs);
}

void COLEDBMFCMiscView::OnInitialUpdate()
{
	m_pSet = &GetDocument()->m_oLEDBMFCMiscSet;
	{
		CWaitCursor wait;
		HRESULT hr = m_pSet->Open();
		if (hr != S_OK)
		{

			COLEDBErrorChecking::DisplayHRRESULTMessage(hr, "Open");
//			AfxMessageBox(_T("Record set failed to open."), MB_OK);
			m_bOnFirstRecord = TRUE;
			m_bOnLastRecord = TRUE;
		}				
	}
	COleDBRecordView::OnInitialUpdate();

}

/////////////////////////////////////////////////////////////////////////////
// COLEDBMFCMiscView diagnostics

#ifdef _DEBUG
void COLEDBMFCMiscView::AssertValid() const
{
	COleDBRecordView::AssertValid();
}

void COLEDBMFCMiscView::Dump(CDumpContext& dc) const
{
	COleDBRecordView::Dump(dc);
}

COLEDBMFCMiscDoc* COLEDBMFCMiscView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(COLEDBMFCMiscDoc)));
	return (COLEDBMFCMiscDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// COLEDBMFCMiscView database support
CRowset* COLEDBMFCMiscView::OnGetRowset()
{
	return m_pSet;
}


/////////////////////////////////////////////////////////////////////////////
// COLEDBMFCMiscView message handlers

//Added by Chuck Wood
//I had to capture the OnMove for the bulk processing
BOOL COLEDBMFCMiscView::OnMove(UINT nIDMoveCommand) 
{
	if (nIDMoveCommand == ID_RECORD_NEXT) {
		UpdateData(TRUE);
		m_pSet->MoveNext();
		UpdateData(FALSE);
		return TRUE;
	}
	else 
		return COleDBRecordView::OnMove(nIDMoveCommand);
}
//Bookmark processing added by Chuck Wood
void COLEDBMFCMiscView::OnRecordSetbookmark() 
{
	//Assign the current row's bookmark to the 
	//view bookmark
	m_ViewBookmark = m_pSet->m_RowsetBookmark;
}

void COLEDBMFCMiscView::OnRecordGotobookmark() 
{
	//Go to the view bookmark and update the window
	m_pSet->MoveToBookmark(m_ViewBookmark);
	UpdateData(FALSE);
}

void COLEDBMFCMiscView::OnRecordDisplayposition() 
{
	//Display the current record
	CBookmark<4> tempBookmark;
	ULONG ulCurrentRow;
	ULONG ulTotalRows;
	char strDisplay[50];		//String to display
	
	tempBookmark = m_pSet->m_RowsetBookmark;
	m_pSet->GetApproximatePosition(&tempBookmark, 
		&ulCurrentRow, &ulTotalRows);
	sprintf(strDisplay, "You are at row %d out of %d total rows",
		ulCurrentRow, ulTotalRows);
	MessageBox(strDisplay, "Column Information");
}

void COLEDBMFCMiscView::OnRecordChangeaccessor() 
{
/*
	ULONG numAccessors = GetNumAccessors();
	if (m_lRecordInAccessor < 1 &&
		numAccessors <= m_lRecordInAccessor) {
		m_lRecordInAccessor = 1;
		return CCommand<CAccessor<CRowDefinition>, CRowset, CMultipleReoords >
			::MoveNext();
	}
	else {
		m_lRecordInAccessor++;
		return GetDataHere(m_lRecordInAccessor, this);
	}
*/
}

⌨️ 快捷键说明

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