storedprocpackage.cpp

来自「本人买的<<VC++项目开发实例>>源代码配套光盘.」· C++ 代码 · 共 174 行

CPP
174
字号
// StoredProcPackage.cpp: implementation of the CStoredProcPackage class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "DBExp.h"
#include "StoredProcPackage.h"
#include "CDBExpDatabase.h"
#include "CDBTreeNode.h"
#include "mainfrm.h"
#include "..\DLLs\StoreProcFunc\spparamdef.h"
#include "DLLFuncs.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

//##ModelId=3C5B9B9F0059
CStoredProcPackage::CStoredProcPackage()
{

}

//##ModelId=3C5B9B9F005A
CStoredProcPackage::~CStoredProcPackage()
{

}
//##ModelId=3C5B9B9F005C
const char *CStoredProcPackage::GetTreeNodeCaption()
{
	static char szCaption[] = _T("存储过程包");
	return szCaption;
}
//##ModelId=3C5B9B9F0063
BOOL CStoredProcPackage::ExpandItem(HTREEITEM hItem, UINT state)
{
	HTREEITEM hTempItem = 0;

	CWaitCursor wait;
	CDBExpDatabase *pDatabase = GetDatabase();

	ASSERT(pDatabase);

	
	CTypedPtrList<CObList, CDBTreeNode *> *pList = NULL;
	if(pDatabase->m_ObStruct[CDBExpDatabase::OBS_STOREDPROC].bHasExpanded)
		return TRUE;

	pDatabase->EnumObjects(ADODB::adSchemaProcedures, "");

	pList = &pDatabase->m_ObStruct[CDBExpDatabase::OBS_STOREDPROC].m_List;
	POSITION pos = pList->GetHeadPosition();
	while(NULL != pos)
	{
		CDBTreeNode *pNode;
		pNode = (CDBTreeNode *)pList->GetNext(pos);
		pNode -> BuildTVITEM(hItem);

		hTempItem = m_pTreeCtrl->InsertItem(&pNode->m_tvInsertStruct);
		ASSERT(hTempItem);
		pNode->Set_hItem(hTempItem);

	}

	return TRUE;
}


//##ModelId=3C5CCBEC0109
BOOL CStoredProcPackage::OpenRelatedView(LPARAM lParam)
{
	CMainFrame *pFrame = (CMainFrame *)AfxGetMainWnd();
	
	CListView *pListView = (CListView *)pFrame->GetRightPane();

	CDBExpDatabase *pDatabase = this->GetDatabase();
	ASSERT(pDatabase);
		
	pListView->GetListCtrl().DeleteAllItems();

	int& nCount = ResetListViewItemCounter();
	
	
	
	POSITION pos = pDatabase->m_ObStruct[2].m_List.GetHeadPosition();
	CDBTreeNode *pTreeNode = NULL;
	while(pos != NULL)
	{

		pTreeNode = pDatabase->m_ObStruct[2].m_List.GetAt(pos);
		pTreeNode->BuildLVITEM(nCount);

		pListView->GetListCtrl().InsertItem(&pTreeNode->m_lvInsertStruct);
		pDatabase->m_ObStruct[2].m_List.GetNext(pos);
	}
	return TRUE;
}



//##ModelId=3C6288460281
BOOL CStoredProcPackage::PopupContextMenu(DBTREE_NODE_CONTEXT& context)
{
	// ToDo: Add your specialized code here or after the call to base class
	
	return CPackageNode::PopupContextMenu(context);
}

//##ModelId=3C62884701DF
void CStoredProcPackage::BuildTVITEM(HTREEITEM hParentItem)
{
	// ToDo: Add your specialized code here or after the call to base class
	
	CPackageNode::BuildTVITEM(hParentItem);
}

//##ModelId=3C6288450395
void CStoredProcPackage::OnMenuItemClick(UINT nCmd)
{
	// ToDo: Add your specialized code here or after the call to base class
	
	CDBExpDatabase *pDatabase = this->GetDatabase();
	
	PARAM_STORED_PROCEDURE paramSP;
	memset(&paramSP, 0, sizeof(paramSP));

	strcpy(paramSP.szConnectionString, (const char *)this->GetDatabase()->m_strCnn);

	LPARAM lParam = (LPARAM)&paramSP;
	HWND	hWnd =  AfxGetMainWnd()->m_hWnd;
	CString strSQL = "";
	
	switch(nCmd)
	{
	case ID_MENU_NEW_SP:
		this->SP_Create(hWnd, lParam);
		break;
	case ID_MENU_DEL_SP:
		this->SP_Remove(hWnd, lParam);
		break;
	default:
		CDBTreeNode::OnMenuItemClick(nCmd);
		break;
	}
}

//##ModelId=3C628847037A
void CStoredProcPackage::BuildContextMenu(DBTREE_NODE_CONTEXT& context)
{
	// ToDo: Add your specialized code here or after the call to base class
	m_pContextMenu->LoadMenu(IDR_MENU_PKG_SP);
	
}


int CStoredProcPackage::SP_Remove(HWND hWnd, LPARAM lParam)
{
	AfxMessageBox("Not implemented");
	return 0;
}

int CStoredProcPackage::SP_Create(HWND hWnd, LPARAM lParam)
{
	return CDLLFuncs::SP_Create(hWnd, lParam);
}

⌨️ 快捷键说明

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