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

📄 querydoc.cpp

📁 这是一个数据库的动态查询的VC++程序
💻 CPP
字号:
/////////////////////////////////////////////////////////////////
//                                                             //
//                      QueryDoc.cpp                           //
//-------------------------------------------------------------//
//             By Eugene Khodakovsky                           //
//                  April,2002                                 //
//             Eugene@cpplab.com                               //
//            Last Update: April, 2002                         //
/////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Query.h"

#include "QueryDoc.h"

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

/////////////////////////////////////////////////////////////////////////////
// CQueryDoc

IMPLEMENT_DYNCREATE(CQueryDoc, CDocument)

BEGIN_MESSAGE_MAP(CQueryDoc, CDocument)
	//{{AFX_MSG_MAP(CQueryDoc)
	ON_COMMAND(ID_RUN_QUERY, OnRunQuery)
	ON_UPDATE_COMMAND_UI(ID_RUN_QUERY, OnUpdateRunQuery)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CQueryDoc construction/destruction

CQueryDoc::CQueryDoc():
	m_query(GetSession()),
	m_hSelNodeType(TreeNode_None)
{
}

CQueryDoc::~CQueryDoc()
{
}

BOOL CQueryDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;

	// TODO: add reinitialization code here
	// (SDI documents will reuse this document)

	return TRUE;
}



/////////////////////////////////////////////////////////////////////////////
// CQueryDoc serialization

void CQueryDoc::Serialize(CArchive& ar)
{
	if (ar.IsStoring())
	{
		// TODO: add storing code here
	}
	else
	{
		// TODO: add loading code here
	}
}

/////////////////////////////////////////////////////////////////////////////
// CQueryDoc diagnostics

#ifdef _DEBUG
void CQueryDoc::AssertValid() const
{
	CDocument::AssertValid();
}

void CQueryDoc::Dump(CDumpContext& dc) const
{
	CDocument::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CQueryDoc commands

#define CRLF CString("\r\n")

void CQueryDoc::OnRunQuery() 
{
	CWaitCursor wait;
	m_query.Empty(); // Clean old query sentence
	m_query << m_strQuery;
	if(!m_query.ExecuteSQL())		
		return;
	UpdateAllViews(NULL,HINT_ON_QUERY_RESULT_READY);
}

void CQueryDoc::OnUpdateRunQuery(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!m_strQuery.IsEmpty());
}

void CQueryDoc::OnSelectTreeNode(TreeNodeType node, const CString strText)
{
	m_hSelNodeType = node;
	m_strSelNodeName = strText;
	switch(m_hSelNodeType)
	{
	default:
		ASSERT(0);
		break;
	case TreeNode_None:
	case TreeNode_RootDatabase:
	case TreeNode_RootTables:
		m_strQuery = _T("");
		break;
	case TreeNode_TableName:
		m_strQuery = " SELECT TOP 100 * FROM [" + m_strSelNodeName + "]";
		OnRunQuery();
		break;
	};
	UpdateAllViews(NULL,HINT_ON_NODE_SELECTED);
}

⌨️ 快捷键说明

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