www.pudn.com > ODBCApi.rar > TableAddDlg.cpp


// TableAddDlg.cpp : 实现文件 
// 
 
#include "stdafx.h" 
#include "DataManager.h" 
#include "TableAddDlg.h" 
#include ".\tableadddlg.h" 
#include "DbOperator\DbOperator.h" 
#define IDC_LIST 1004 
#define IDC_EDIT 1005 
// CTableAddDlg 对话框 
CString DataType[]= 
{ 
	"bigint","binary","bit","char","datetime","decimal","float","image","int","money","nchar","ntext","numeric", 
		"nvarchar","real","smalldatetime","smallint","smallmoney","sql_variant","text","timestamp","tinyint", 
		"uniqueidentifier","varbinary","varchar" 
}; 
IMPLEMENT_DYNAMIC(CTableAddDlg, CDialog) 
CTableAddDlg::CTableAddDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(CTableAddDlg::IDD, pParent) 
{ 
	m_listTableAdd.m_hWnd = NULL; 
} 
 
CTableAddDlg::~CTableAddDlg() 
{ 
} 
 
void CTableAddDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
} 
 
 
BEGIN_MESSAGE_MAP(CTableAddDlg, CDialog) 
	ON_WM_CREATE() 
	ON_BN_CLICKED(IDC_BTN_FIELDADD, OnBnClickedBtnFieldadd) 
	ON_BN_CLICKED(IDC_BTN_FIELDDELETE, OnBnClickedBtnFielddelete) 
	ON_BN_CLICKED(ID_YES, OnBnClickedYes) 
END_MESSAGE_MAP() 
 
 
// CTableAddDlg 消息处理程序 
 
void CTableAddDlg::OnOK() 
{ 
} 
 
int CTableAddDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{ 
	if (CDialog::OnCreate(lpCreateStruct) == -1) 
		return -1; 
	CRect rcClient; 
	GetClientRect(rcClient); 
	if(m_listTableAdd.m_hWnd == NULL) 
	{ 
		m_listTableAdd.Create(WS_CHILD | WS_VISIBLE | WS_BORDER | LVS_REPORT, CRect(10,10,rcClient.Width()-170,rcClient.Height()-100), this, IDC_LIST); 
		m_listTableAdd.SetExtendedStyle(LVS_EX_CHECKBOXES | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT ); 
	} 
 
	if(m_listTableAdd.m_hWnd != NULL) 
	{ 
		m_listTableAdd.InsertColumn(1, "操作"); 
		m_listTableAdd.InsertColumn(1, "主键"); 
		m_listTableAdd.InsertColumn(2, "列名"); 
		m_listTableAdd.InsertColumn(3, "数据类型"); 
		m_listTableAdd.InsertColumn(4, "长度"); 
		m_listTableAdd.InsertColumn(5, "允许空"); 
		m_listTableAdd.InsertColumn(6, "默认值"); 
		m_listTableAdd.SetColumnWidth(0, 40); 
		m_listTableAdd.SetColumnWidth(1, 100);//主键 
		m_listTableAdd.SetColumnWidth(2, 100);///列名 
		m_listTableAdd.SetColumnWidth(3, 100);//类型 
		m_listTableAdd.SetColumnWidth(4, 100);//长度 
		m_listTableAdd.SetColumnWidth(5, 100);//允许空 
		m_listTableAdd.SetColumnWidth(6, 100);//默认值 
		CItemEdit* pEdit = new CItemEdit(); 
		pEdit->Create(WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT, CRect(0,0,0,0), &m_listTableAdd, 1007); 
		m_listTableAdd.SetEdit(pEdit, 2); 
 
		pEdit = new CItemEdit(); 
		pEdit->Create(WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_NUMBER, CRect(0,0,0,0), &m_listTableAdd, 1009); 
		m_listTableAdd.SetEdit(pEdit, 4); 
 
		pEdit = new CItemEdit(); 
		pEdit->Create(WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_NUMBER, CRect(0,0,0,0), &m_listTableAdd, 1011); 
		m_listTableAdd.SetEdit(pEdit, 6); 
 
		CItemComboBox* pItemComboBox = new CItemComboBox(); 
 
		pItemComboBox->Create(WS_CHILD|WS_BORDER|CBS_DROPDOWN, CRect(0,0,0,100), &m_listTableAdd, 1006);	 
		pItemComboBox->AddString("*"); 
		pItemComboBox->AddString(""); 
		m_listTableAdd.SetComboBox(pItemComboBox, 1); 
 
		pItemComboBox = new CItemComboBox(); 
		pItemComboBox->Create(WS_CHILD|WS_BORDER|CBS_DROPDOWN|WS_VSCROLL , CRect(0,0,0,200), &m_listTableAdd, 1008); 
		for(int i=0; i<25; i++) 
		{ 
			pItemComboBox->AddString(DataType[i]); 
		} 
		m_listTableAdd.SetComboBox(pItemComboBox, 3); 
 
		pItemComboBox = new CItemComboBox(); 
		pItemComboBox->Create(WS_CHILD|WS_BORDER|CBS_DROPDOWN, CRect(0,0,0,100), &m_listTableAdd, 1010); 
		pItemComboBox->AddString(""); 
		pItemComboBox->AddString("NOT NULL"); 
		m_listTableAdd.SetComboBox(pItemComboBox, 5); 
	} 
	return 0; 
} 
 
void CTableAddDlg::OnBnClickedBtnFieldadd() 
{ 
	if(m_listTableAdd.m_hWnd!=NULL) 
	{ 
		int nItems = m_listTableAdd.GetItemCount(); 
		m_listTableAdd.InsertItem(nItems, ""); 
	} 
} 
 
void CTableAddDlg::OnBnClickedBtnFielddelete() 
{ 
	if(m_listTableAdd.m_hWnd!=NULL) 
	{ 
		int nItems = m_listTableAdd.GetItemCount(); 
		for(int i=nItems-1; i>=0; i--) 
		{ 
			BOOL bIsChecked = ListView_GetCheckState(m_listTableAdd.m_hWnd, i); 
			if(bIsChecked) 
			{ 
				m_listTableAdd.DeleteItem(i); 
			} 
		}	 
	} 
} 
 
void CTableAddDlg::OnBnClickedYes() 
{ 
	CString strTableName; 
	CString strItem1; 
	CString strItem2; 
	CString strItem3; 
	CString strItem4; 
	CString strItem5; 
	CString strItem6; 
	CString strSQL=""; 
	CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT_TABLENAME); 
	pEdit->GetWindowText(strTableName); 
	if(strTableName=="") 
	{ 
		MessageBox("table name can't be null!"); 
		return; 
	} 
	//检测表是否已经存在 
	CDbOperator DbOperator; 
	BOOL bIsExisted = DbOperator.IsTableExisted(strTableName); 
	if(bIsExisted) 
	{ 
		MessageBox("the table name is existed! please enter another name!"); 
		return; 
	} 
 
 
	CHeaderCtrl* pHeaderCtrl = m_listTableAdd.GetHeaderCtrl(); 
	int nColCount = pHeaderCtrl->GetItemCount(); 
	int nRowCount = m_listTableAdd.GetItemCount(); 
	for(int i=0; ipWnd; 
				if(pWnd->GetDlgCtrlID()==1011) 
				{ 
					CItemEdit* pItemEdit = (CItemEdit*)pWnd; 
					if(pItemEdit!=NULL) 
					{ 
						pItemEdit->SetReadOnly(); 
						pItemEdit->SetWindowText("4"); 
					} 
				} 
			} 
		} 
	} 
 
 
	 
}