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(¶mSP, 0, sizeof(paramSP));
strcpy(paramSP.szConnectionString, (const char *)this->GetDatabase()->m_strCnn);
LPARAM lParam = (LPARAM)¶mSP;
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 + -
显示快捷键?