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

📄 datasourceinfoview.cpp

📁 VC6数据库开发指南
💻 CPP
字号:
// CDatasourceInfoView.cpp : implementation of the CCDatasourceInfoView class
//
#include "stdafx.h"
#include "DatasourceInfo.h"

//#include "tableset.h"

#include "DatasourceInfoView.h"

#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDatasourceInfoView

IMPLEMENT_DYNCREATE(CDatasourceInfoView, CRecordView)

BEGIN_MESSAGE_MAP(CDatasourceInfoView, CRecordView)
	//{{AFX_MSG_MAP(CDatasourceInfoView)
	ON_UPDATE_COMMAND_UI(ID_APP_EXIT, OnUpdateAppExit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDatasourceInfoView construction/destruction

CDatasourceInfoView::CDatasourceInfoView()
	: CRecordView(CDatasourceInfoView::IDD)
{
	//{{AFX_DATA_INIT(CDatasourceInfoView)
	m_pSet = NULL;
	//}}AFX_DATA_IN
	// TODO: add construction code here
}

CDatasourceInfoView::~CDatasourceInfoView()
{
}

void CDatasourceInfoView::DoDataExchange(CDataExchange* pDX)
{
	CRecordView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDatasourceInfoView)
	DDX_Control(pDX, IDC_COLUMNS, m_lbColumns);
	DDX_FieldText(pDX, IDC_NAME, m_pSet->m_strName, m_pSet);
	DDX_FieldText(pDX, IDC_OWNER, m_pSet->m_strOwner, m_pSet);
	DDX_FieldText(pDX, IDC_TYPE, m_pSet->m_strType, m_pSet);
	DDX_FieldText(pDX, IDC_REMARK, m_pSet->m_strRemarks, m_pSet);
	//}}AFX_DATA_MAP
}

void CDatasourceInfoView::OnInitialUpdate()
{
	m_pSet = &GetDocument()->m_tableSet;
	m_pSet->m_strTypeParam = "'TABLE'";
	CRecordView::OnInitialUpdate();

	try
	{
		if (m_pSet->IsOpen())
		{
			// Flush pending results for drivers that don't
			// support multiple hstmt's
			m_pSet->MoveLast();
			m_pSet->MoveFirst();
			FillColumnsListBox();
		}
		else
			m_pSet->ThrowDBException(AFX_SQL_ERROR_CONNECT_FAIL);
	}

	catch( CDBException* e )
	{
		e->ReportError(MB_ICONEXCLAMATION);
	}
}


#ifdef _DEBUG
void CDatasourceInfoView::AssertValid() const
{
	CRecordView::AssertValid();
}

void CDatasourceInfoView::Dump(CDumpContext& dc) const
{
	CRecordView::Dump(dc);
}

CDatasourceInfoDoc* CDatasourceInfoView::GetDocument() // non-debug version is inline
{
	return STATIC_DOWNCAST(CDatasourceInfoDoc, m_pDocument);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CDatasourceInfoView database support

CRecordset* CDatasourceInfoView::OnGetRecordset()
{
	return m_pSet;
}

BOOL CDatasourceInfoView::OnMove(UINT nIDMoveCommand)
{
	if (!CRecordView::OnMove(nIDMoveCommand))
		return FALSE;

	FillColumnsListBox();
	return TRUE;
}

void CDatasourceInfoView::FillColumnsListBox()
{
	ASSERT(!m_Columns.IsOpen());

	m_Columns.m_strQualifierParam = m_pSet->m_strQualifier;
	m_Columns.m_strOwnerParam = m_pSet->m_strOwner;
	m_Columns.m_strTableNameParam = m_pSet->m_strName;

	if (m_Columns.m_pDatabase == NULL)
		m_Columns.m_pDatabase = m_pSet->m_pDatabase;

	if (!m_Columns.Open())
		return;

	m_lbColumns.ResetContent();
	while (!m_Columns.IsEOF())
	{
		m_lbColumns.AddString(m_Columns.m_strColumnName +
			" (" + m_Columns.m_strTypeName + ')');
		m_Columns.MoveNext();
	}

	m_Columns.Close();
}

/////////////////////////////////////////////////////////////////////////////
// CDatasourceInfoView message handlers

void CDatasourceInfoView::OnUpdateAppExit(CCmdUI* pCmdUI)
{
	pCmdUI->Enable(TRUE);
}

⌨️ 快捷键说明

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