www.pudn.com > chenjing.rar > BookInfoDlg.cpp


// BookInfoDlg.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "Library.h" 
#include "BookInfoDlg.h" 
#include "BookSet.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CBookInfoDlg dialog 
 
 
CBookInfoDlg::CBookInfoDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(CBookInfoDlg::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CBookInfoDlg) 
	m_strBookID = _T(""); 
	m_strBookName = _T(""); 
	m_strPress = _T(""); 
	m_strWriter = _T(""); 
	m_dPrice = 0.0; 
	//}}AFX_DATA_INIT 
} 
 
 
void CBookInfoDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CBookInfoDlg) 
	DDX_Text(pDX, IDC_STATIC_BOOKNO, m_strBookID); 
	DDX_Text(pDX, IDC_STATIC_NAME, m_strBookName); 
	DDX_Text(pDX, IDC_STATIC_PRESS, m_strPress); 
	DDX_Text(pDX, IDC_STATIC_WRITER, m_strWriter); 
	DDX_Text(pDX, IDC_EDIT_PRICE, m_dPrice); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CBookInfoDlg, CDialog) 
	//{{AFX_MSG_MAP(CBookInfoDlg) 
	ON_WM_CLOSE() 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CBookInfoDlg message handlers 
 
BOOL CBookInfoDlg::OnInitDialog()  
{ 
	CDialog::OnInitDialog(); 
	 
	// TODO: Add extra initialization here 
	if(!m_database.IsOpen()) 
	{ 
		if(!m_database.Open(_T("Library"))) 
		{ 
			MessageBox("Cannot access the database!","图书信息!"); 
			OnOK(); 
			return FALSE; 
		} 
	} 
	 
	CBookSet *m_pset=new CBookSet(&m_database); 
	CString strSQL; 
	strSQL.Format("select * from Book_Info where Book_ID='%s'",m_strBookID); 
	m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); 
 
	if(m_pset->GetRecordCount()==0) 
	{ 
		MessageBox("本馆没有这本书!","图书信息!"); 
		m_database.Close(); 
		OnOK(); 
		return FALSE; 
	} 
	//将书籍信息显示出来 
	CDBVariant varValue; 
 
	m_pset->GetFieldValue(1,varValue); 
	m_strBookName=varValue.m_pstring->GetBuffer(1); 
 
	m_pset->GetFieldValue(2,varValue); 
	m_strWriter=varValue.m_pstring->GetBuffer(1); 
 
	m_pset->GetFieldValue(3,varValue); 
	m_strPress=varValue.m_pstring->GetBuffer(1); 
 
	m_pset->GetFieldValue(4,varValue); 
	m_dPrice=varValue.m_dblVal; 
 
	UpdateData(FALSE); 
	m_pset->Close(); 
	m_database.Close(); 
	 
	return TRUE;  // return TRUE unless you set the focus to a control 
	              // EXCEPTION: OCX Property Pages should return FALSE 
} 
 
void CBookInfoDlg::OnClose()  
{ 
	if(m_database.IsOpen()) 
		m_database.Close(); 
	OnOK(); 
}