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

📄 addareadlg.cpp

📁 本系统提供按地区划分的房屋信息查询和编辑功能
💻 CPP
字号:
// ADDAreaDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "House.h"
#include "ADDAreaDlg.h"
#include ".\addareadlg.h"


// CADDAreaDlg 对话框

IMPLEMENT_DYNAMIC(CADDAreaDlg, CDialog)
CADDAreaDlg::CADDAreaDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CADDAreaDlg::IDD, pParent)
	, m_Name(_T(""))
{
	m_pDB = NULL;
}

CADDAreaDlg::~CADDAreaDlg()
{
}

void CADDAreaDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_LIST_AREA, m_AreaList);
	DDX_Text(pDX, IDC_EDIT_NAME, m_Name);
}


BEGIN_MESSAGE_MAP(CADDAreaDlg, CDialog)
	ON_BN_CLICKED(IDOK, OnBnClickedOk)
	ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
END_MESSAGE_MAP()


// CADDAreaDlg 消息处理程序

void CADDAreaDlg::OnBnClickedCancel()
{
	OnCancel();
}

void CADDAreaDlg::SetDB( CDaoDatabase *pDB )
{
	m_pDB = pDB;
}

BOOL CADDAreaDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// TODO:  在此添加额外的初始化
	LoadName();

	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}
// 将所有的区名读入List框
void CADDAreaDlg::LoadName()
{
	// 删除所有记录
	while(m_AreaList.GetCount() > 0 )
		m_AreaList.DeleteString(0);

	CDaoTableDefInfo info;
	for( int i = 0; i < m_pDB->GetTableDefCount(); i++ )
	{
		m_pDB->GetTableDefInfo(i,info);
		if( info.m_lAttributes & dbSystemObject )
			continue;
		m_AreaList.AddString( info.m_strName );
	}
}
// 判断表是否已经存在
bool CADDAreaDlg::HaveTableName( CString name )
{
	for( int i = 0; i < m_AreaList.GetCount(); i++ )
	{
		CString temp;
		m_AreaList.GetText(i,temp);
		if( temp == name )
			return true;
	}
	return false;
}
// 添加
void CADDAreaDlg::OnBnClickedOk()
{
	if( UpdateData() == false )
		return;
	if( HaveTableName( m_Name ) )
	{
		MessageBox("该区域已经存在,不能在添加了");
		return;
	}

	m_Name.Replace("'","''");
	CString temp,sql;
	temp.Format("CREATE TABLE %s",m_Name);
	sql = temp;
	temp = "(NAME CHAR(32),";
	sql += temp;
	temp = "AREA NUMBER,";
	sql += temp;
	temp = "FLOOR NUMBER,";
	sql += temp;
	temp = "PRICE NUMBER,";
	sql += temp;
	temp = "NUM NUMBER,";
	sql += temp;
	temp = "DEVELOPER CHAR(32) )";
	sql += temp;

	try
	{
		m_pDB->Execute( sql );
	}
	catch(...)
	{
		MessageBox( "创建表失败" );
	}
	// 重新打开数据库,以适应更改
	try
	{
		m_pDB->Close();
		m_pDB->Open("house.mdb");
	}
	catch(...)
	{
		MessageBox("数据库打开失败");
	}

	LoadName();
}

⌨️ 快捷键说明

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