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

📄 projectseldlg.cpp

📁 利用Visual c++编程思想方法实现基于交通网络关键路径算法
💻 CPP
字号:
// ProjectSelDlg.cpp : implementation file
//

#include "stdafx.h"
#include "KeyPath.h"
#include "ProjectSelDlg.h"

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

extern CKeyPathApp theApp;

/////////////////////////////////////////////////////////////////////////////
// CProjectSelDlg dialog


CProjectSelDlg::CProjectSelDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CProjectSelDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CProjectSelDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CProjectSelDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CProjectSelDlg)
	DDX_Control(pDX, IDC_PRJ_LIST, m_prjList);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CProjectSelDlg, CDialog)
	//{{AFX_MSG_MAP(CProjectSelDlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CProjectSelDlg message handlers

void CProjectSelDlg::OnOK() 
{
	// TODO: Add extra validation here
	
	UpdateData(TRUE);
	int nSelected = m_prjList.GetSelectionMark();
	if (nSelected < 0) {
		return;
	}

	theApp.m_PathTitleID = m_prjList.GetItemText(nSelected, 0);
	theApp.m_PathTitle = m_prjList.GetItemText(nSelected, 1);

	CDialog::OnOK();
}

void CProjectSelDlg::OnCancel() 
{
	// TODO: Add extra cleanup here
	
	CDialog::OnCancel();
}

BOOL CProjectSelDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_prjList.InsertColumn(0, "编号", LVCFMT_LEFT, 40);
	m_prjList.InsertColumn(1, "工程名称", LVCFMT_LEFT, 60);
	
	//获取当前程序所在物理路径
	//程序所在目录全路径。
	TCHAR exeFullPath[MAX_PATH];
	CString theConnUdl;
	GetCurrentDirectory(MAX_PATH, exeFullPath);

	//数据库连接指针
	_ConnectionPtr m_accessConn;
	//数据库结果集指针
	_RecordsetPtr m_accessRS;
	
	if (m_accessConn != NULL)
	{
		if (m_accessConn->State)
		{
			m_accessConn->Close();
		}
		m_accessConn = NULL;
	}

	//初始化数据库连接
	theConnUdl.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s\\key_path.mdb;Jet OLEDB:Database Password=;", exeFullPath);
	HRESULT hr;
	try
	{
		hr = m_accessConn.CreateInstance("ADODB.Connection"); // 创建Connection对象
		if(SUCCEEDED(hr))
		{
			hr = m_accessConn->Open((_bstr_t) theConnUdl, "", "", adModeUnknown);
		} 
		
	}
	catch(_com_error e)// 捕捉异常
	{		
		MessageBox("连接数据库失败");
		return false;
	}
	
	//初始化数据库
	m_accessRS.CreateInstance(_uuidof(Recordset));
	m_accessRS->CursorType = adOpenStatic;
	m_accessRS->CursorLocation = adUseClient;
	
	CString theSql;
	int nItem = 0;
	int m_num = 0;
	
	//获取工程信息
	theSql.Format("select id, project_name, memo from project order by project_name ASC");
	m_accessRS = m_accessConn->Execute(_bstr_t(theSql), NULL, adCmdText);
	while (!m_accessRS->adoEOF) {

		nItem = m_prjList.InsertItem(m_num, _T((LPCTSTR)(_bstr_t) m_accessRS->GetCollect("id")));
		m_prjList.SetItemText(nItem, 1, _T((LPCTSTR)(_bstr_t) m_accessRS->GetCollect("project_name")));
		m_num++;
		
		m_accessRS->MoveNext();
	}

	if (m_accessConn != NULL)
	{
		if (m_accessConn->State)
		{
			m_accessConn->Close();
		}
		m_accessConn = NULL;
	}
	
	if (m_accessRS != NULL)
	{
		if (m_accessRS->State)
		{
			m_accessRS->Close();
		}
		m_accessRS = NULL;
	}
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

⌨️ 快捷键说明

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