📄 editip.cpp
字号:
// EditIP.cpp : implementation file
//
#include "stdafx.h"
#include "ADO.h"
#include "EditIP.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CEditIP dialog
extern CADOApp theApp;
//extern char strOpen[100];
extern CString mm;
extern char kk[1024];
extern int sum1;
extern CString tmp;
//char strEdit[1024] = "";
char storage[1024] = "";
char* g_totle1;//记录每列的标题
char* g_totle2;//记录每行的数据
int sum = 0;
const int size=20;
CEditIP::CEditIP(CWnd* pParent /*=NULL*/)
: CDialog(CEditIP::IDD, pParent)
{
//{{AFX_DATA_INIT(CEditIP)
m_comb = _T("");
m_edit = _T("");
//}}AFX_DATA_INIT
}
void CEditIP::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEditIP)
DDX_Control(pDX, IDC_EDIT1, m_edit1);
DDX_Control(pDX, IDC_COMBO1, m_comb1);
DDX_CBString(pDX, IDC_COMBO1, m_comb);
DDX_Text(pDX, IDC_EDIT1, m_edit);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CEditIP, CDialog)
//{{AFX_MSG_MAP(CEditIP)
ON_BN_CLICKED(IDC_UPDATE, OnUpdate)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEditIP message handlers
BOOL CEditIP::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
if(nFlag == 1)
SetDlgItemText(IDOK, "添加");
if(nFlag == 2)
SetDlgItemText(IDOK, "修改");
::CoInitialize(NULL); // COM 初始化
g_totle1 = kk;
for(int j=0;j<sum1;j++)
{
m_comb1.AddString(g_totle1);
g_totle1+=20;
}
/* memset(strOpen,0,100);
sprintf(strOpen,"select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='%s')",tmp);
_variant_t vname;
int i = 0;
sum = 0;
g_totle1 = strEdit;
try
{
m_pRecordset.CreateInstance("ADODB.Recordset");
//用SQL语句打开数据库“SELECT * FROM 表1”
m_pRecordset->Open(strOpen, _variant_t((IDispatch*)theApp.m_pConnection,true), adOpenStatic, adLockOptimistic, adCmdText);
while(!m_pRecordset->adoEOF)
{
vname = (_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("Name"))->Value);
WideCharToMultiByte(CP_ACP,0,vname.bstrVal,-1,g_totle1,20,0,0);
m_comb = vname.bstrVal;
m_comb1.AddString(m_comb);
g_totle1+=20;
sum++;
m_pRecordset->MoveNext();
}
}
catch(_com_error e)///捕捉异常
{
AfxMessageBox("读取数据库失败!");///显示错误信息
}
m_pRecordset->Close();*/
memset(storage,0,100);
g_totle2 = storage;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CEditIP::OnOK()
{
// TODO: Add extra validation here
CString cid = mm;
UpdateData(TRUE);
if(nFlag == 1) // 添加记录
{
g_totle2 = storage;
CString csInsert;
csInsert.Format("INSERT INTO %s values(",tmp);
for(int j=0;j<sum1;j++)
{
csInsert +="'";
csInsert += g_totle2;
csInsert +="'";
if(j!=(sum1-1))
csInsert += ",";
g_totle2 += size;
}
csInsert += ")";
theApp.m_pConnection->Execute((LPCTSTR)csInsert, NULL, adCmdText);
}
if(nFlag == 2) // 修改记录
{
if(mm.IsEmpty())
{
return;
}
g_totle1 = kk;
g_totle2 = storage;
CString csInsert;
csInsert.Format("Update %s set ",tmp);
for(int j=0;j<sum1;j++)
{
csInsert += g_totle1;
csInsert +="='";
csInsert += g_totle2;
csInsert +="'";
if(j!=(sum1-1))
csInsert += ",";
g_totle1 += size;
g_totle2 += size;
}
g_totle1 = kk;
csInsert += " WHERE ";
csInsert += g_totle1;
csInsert += "='";
csInsert += mm;
csInsert += "'";
theApp.m_pConnection->Execute((LPCTSTR)csInsert, NULL, adCmdText);
}
CDialog::OnOK();
}
void CEditIP::OnUpdate()
{
// TODO: Add your control notification handler code here
int i;
i = m_comb1.GetCurSel();
m_edit1.GetWindowText(g_totle2+i*size,20);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -