inserttableattr.cpp

来自「用C++写的数据库软件」· C++ 代码 · 共 223 行

CPP
223
字号
// InsertTableAttr.cpp : implementation file
//

#include "stdafx.h"
#include "fksqxt.h"
#include "InsertTableAttr.h"

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

/////////////////////////////////////////////////////////////////////////////
// CInsertTableAttr dialog


CInsertTableAttr::CInsertTableAttr(CWnd* pParent /*=NULL*/)
	: CDialog(CInsertTableAttr::IDD, pParent)
{
	//{{AFX_DATA_INIT(CInsertTableAttr)
	m_ATTR = _T("");
	m_ATTRMC = _T("");
	m_DEC = _T("");
	m_LEN = _T("");
	m_TableName = _T("");
	//}}AFX_DATA_INIT
}


void CInsertTableAttr::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CInsertTableAttr)
	DDX_Control(pDX, IDC_ComboTYPE, m_ComboTYPE);
	DDX_Text(pDX, IDC_ATTR, m_ATTR);
	DDX_Text(pDX, IDC_ATTRMC, m_ATTRMC);
	DDX_Text(pDX, IDC_DEC, m_DEC);
	DDX_Text(pDX, IDC_LEN, m_LEN);
	DDX_Text(pDX, IDC_STATIC_TableName, m_TableName);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CInsertTableAttr, CDialog)
	//{{AFX_MSG_MAP(CInsertTableAttr)
	ON_BN_CLICKED(IDC_CANCEL, OnCancel)
	ON_BN_CLICKED(IDC_OK, OnSubmit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CInsertTableAttr message handlers

void CInsertTableAttr::setTableBH(CString bh)
{
	m_strTableBH = bh;
}

BOOL CInsertTableAttr::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	if( m_strTableBH == "")
	{
	//	MessageBox("error !");
		return FALSE;
	}

	CString strSQL;
	EncaADO encaAdo;
	_RecordsetPtr rs;
	_variant_t var;
	strSQL.Format("select MC from TABLEZD where BH ='%s'",m_strTableBH);
	rs = encaAdo.GetRecordSet(LPCSTR(strSQL));
	var = rs->GetCollect("MC");
	CString str;
	str.Format("(%s) ",m_strTableBH);
	if(var.vt != VT_NULL)
	{
		CString str2 = LPCSTR(_bstr_t(var));
		str += str2;
	}
	m_TableName = str;
	CDialog::UpdateData(FALSE);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CInsertTableAttr::OnCancel() 
{

	this->EndDialog(0);
}

void CInsertTableAttr::OnSubmit() 
{
	UpdateData(TRUE);
	EncaADO encaAdo;
	_RecordsetPtr rs;
	_variant_t var;
	
	CString temp;
	m_ComboTYPE.GetWindowText(temp);

	CString strSQL;
	strSQL.Format("insert into  TABLESTRUZD \
		(DB_BH,    BH,  ZD, isKey,ZDMC,TYPE,DIC_LEN,DIC_DEC,TABLE_LEN,TABLE_DEC,SYSTEM,HELP) values\
		('FKSQXT','%s','%s','否' ,'%s','%s','%s',   '%s'   ,'%s',     '%s',    '否',  '否')",\
		m_strTableBH,m_ATTR,m_ATTRMC,temp,  m_LEN,  m_DEC,  m_LEN,    m_DEC );

	CString strSQL1;
	strSQL1.Format("select * from ATTRIBUTE where ATTR = '%s'",m_ATTR);
	rs = encaAdo.GetRecordSet(LPCSTR(strSQL1));
	int RecordCount=-1;
	while(!rs->adoEOF)
	{
		RecordCount++ ;
		rs->MoveNext();
	}

	if(RecordCount == -1)
	{
		CString strSQL2;
		strSQL2.Format("insert into ATTRIBUTE \
			(ATTR,ATTRMC,TYPE,LEN,DEC) values\
			('%s','%s','%s','%s','%s')",\
			m_ATTR,m_ATTRMC,temp,m_LEN,m_DEC);
		encaAdo.ExecuteSQL(LPCSTR(strSQL2));
		if(encaAdo.ExecuteSQL(LPCSTR(strSQL)))
		{
			MessageBox("添加二维表成功");
		}
		else
		{
			MessageBox("添加二维表失败");
		}
		this->EndDialog(0);
	}
	else
	{
		MessageBox("不可增加相同的属性");		
		m_ATTR = "";
		m_ATTRMC = "";
		m_DEC = "";
		m_LEN = "";
		m_strTableBH = "";
		UpdateData(FALSE);
	}
	
	
/*	CString strSQL;
	strSQL.Format("alter table %s add %s ",m_strTableBH,m_ATTR);
	CString temp;
	m_ComboTYPE.GetWindowText(temp);
*/
/*	switch(temp)
	{
	case "int":
	case "datetime":
	case "float":
	case "binary":
		strSQL += temp;
		break;
	case "char":
	case "nchar":
	case "nvarchar":
		strSQL += temp;
		strSQL += "(";
		strSQL += m_LEN;
		strSQL += ")";
		break;
	case "numeric":
		strSQL += temp;
		strSQL += "(";
		strSQL += m_LEN;
		strSQL += ",";
		strSQL += m_DEC;
		strSQL += ")";
	}
*/
/*	CString str;
	if(!temp.Compare("int") ||
		!temp.Compare("datetime") ||
		!temp.Compare("float") ||
		!temp.Compare("binary"))
	{
		strSQL +=  temp;
	}
	else if(!temp.Compare("char") ||
			!temp.Compare("nchar")||
			!temp.Compare("nvarchar"))
	{
		strSQL += temp;
		strSQL += "(";
		strSQL += m_LEN;
		strSQL += ")";
	}
	else if(! temp.Compare("numeric"))
	{
		strSQL += temp;
		strSQL += "(";
		strSQL += m_LEN;
		strSQL += ",";
		strSQL += m_DEC;
		strSQL += ")";
	}
	EncaADO encaAdo;
	_RecordsetPtr rs;
	_variant_t var;
	if(encaAdo.ExecuteSQL(LPCSTR(strSQL)))
	{
		MessageBox("添加属性成功");
	}
	else
	{
		MessageBox("添加属性失败");
	}
	this->EndDialog(0);
*/	
}

⌨️ 快捷键说明

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