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

📄 database_main.cpp

📁 数据库程序源代码,可用于三维软件的数据库管理使用
💻 CPP
字号:
// Database_main.cpp : implementation file
//

#include "stdafx.h"
#include "para_database_program.h"
#include "Database_main.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDatabase_main dialog


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


void CDatabase_main::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDatabase_main)
	DDX_Control(pDX, IDC_LIST_PARA, m_list_control);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDatabase_main, CDialog)
	//{{AFX_MSG_MAP(CDatabase_main)
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDatabase_main message handlers

BOOL CDatabase_main::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	try{	
	m_pdatabase=new CDatabase();
	m_pset=new CRecordset();
    m_pdatabase->Open(_T("para_database"),FALSE,FALSE,_T("ODBC;DSN=para_database"),FALSE);
	m_pset->m_pDatabase=m_pdatabase;	
	}
	catch(CDBException* e){
		e->ReportError();
        e->Delete();
	    delete m_pset;
		delete m_pdatabase;
		return TRUE;}
	DataShow("para");
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
void CDatabase_main::ClearList()
{
	//m_list_control.SetExtendedStyle(LVS_EX_FULLROWSELECT);
	//m_list_control.SetExtendedStyle(LVS_EX_GRIDLINES);
	m_list_control.DeleteAllItems();
	while(m_list_control.DeleteColumn(0));
    UpdateWindow();
}

void CDatabase_main::DataShow(CString table_name)
{
    ClearList();
    CString strSQL;
	strSQL="select * from "+table_name;
	ShowInformation(strSQL);
}

BOOL CDatabase_main::ShowInformation(CString strSQL)
{
    if(!m_pdatabase->IsOpen()) return FALSE;
	if(!m_pset) return FALSE;
	try{
		BeginWaitCursor();
		if(m_pset->IsOpen()) m_pset->Close();
		m_pset->Open(CRecordset::dynaset,strSQL);
		if(!m_pset->IsEOF())
		{m_pset->MoveLast();
		m_pset->MoveFirst();}
		nFieldCount=m_pset->GetODBCFieldCount();
		CODBCFieldInfo fieldinfo;
		for(int n=0;n<nFieldCount;n++){
			m_pset->GetODBCFieldInfo(n,fieldinfo);
			int nWidth=m_list_control.GetStringWidth(fieldinfo.m_strName)+35;
			m_list_control.InsertColumn(n,fieldinfo.m_strName,LVCFMT_RIGHT,nWidth);
		}
		CString strValue;
		m_pset->MoveFirst();
		int nCount=0;
		while(!m_pset->IsEOF()){
			m_list_control.InsertItem(nCount,strValue);
			for(int j=0;j<nFieldCount;j++){
				m_pset->GetFieldValue(j,strValue);
				m_list_control.SetItemText(nCount,j,strValue);
			}
			m_pset->MoveNext();
			nCount++;
		}
		EndWaitCursor();
	}
	catch(CDBException *e){
		e->Delete();
        EndWaitCursor();
		return FALSE;
	}
	return TRUE;
}
void CDatabase_main::OnDestroy() 
{
	CDialog::OnDestroy();
	
	// TODO: Add your message handler code here
	delete m_pset;
	delete m_pdatabase;	
}
extern CString str[4];
void CDatabase_main::OnOK() 
{
	// TODO: Add extra validation here
UINT uSelectedCount=m_list_control.GetSelectedCount();
	if(uSelectedCount>1||uSelectedCount==0)
	{
	  if(uSelectedCount==0)
	  {
		  MessageBox("要选择一条参数!","提示",MB_ICONWARNING+MB_OK);
		  return;
	  }
      if(uSelectedCount>1)
	  {   
		  MessageBox("只能选择一条参数!","提示",MB_ICONWARNING+MB_OK);
		  return;
	  }
	}
	else
	{	
		int nItemSel=0;
        nItemSel=m_list_control.GetNextItem(nItemSel-1,LVNI_SELECTED);
		for(int j=0;j<nFieldCount;j++)
		    str[j]=m_list_control.GetItemText(nItemSel,j);
	}
	CDialog::OnOK();
}

⌨️ 快捷键说明

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