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 + -
显示快捷键?