📄 finddata.cpp
字号:
// finddata.cpp : implementation file
//
#include "stdafx.h"
#include "s.h"
#include "finddata.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// finddata dialog
extern CSApp theApp;
finddata::finddata(CWnd* pParent /*=NULL*/)
: CDialog(finddata::IDD, pParent)
{
//{{AFX_DATA_INIT(finddata)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void finddata::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(finddata)
DDX_Control(pDX, IDC_INPUT, m_input);
DDX_Control(pDX, IDC_FIND1, m_find);
DDX_Control(pDX, ID_CANCEL2, m_cancle2);
DDX_Control(pDX, ID_OK, m_ok);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(finddata, CDialog)
//{{AFX_MSG_MAP(finddata)
ON_BN_CLICKED(ID_CANCEL2, OnCancel2)
ON_BN_CLICKED(ID_OK, OnOk)
ON_CBN_CLOSEUP(IDC_FIND1, OnCloseupFind1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// finddata message handlers
void finddata::OnOK()
{
// TODO: Add extra validation here
CString st,input;
CString s1,sql;
m_find.GetWindowText(st);
m_input.GetWindowText(input);
if(input.IsEmpty())
{
AfxMessageBox("有个输入为空");
return;
}
s1.Format("'");
sql.Format(m_sql+" "+st+"="+s1+input+s1);
if(initdata(sql))
{
m_same=true;
CDialog::OnOK();
}
return;
}
void finddata::OnCancel()
{
// TODO: Add extra cleanup here
//CDialog::OnCancel();
}
BOOL finddata::OnInitDialog()
{
CDialog::OnInitDialog();
init2();
return TRUE;
}
Fields * finddata::GetField(_RecordsetPtr m_Recordset1)
{
FieldsPtr pFields;
ASSERT(m_Recordset1 != NULL);
try
{
if (SUCCEEDED(m_Recordset1->get_Fields(&pFields)))
{
return pFields;
}
}
catch (_com_error e)
{
TRACE(_T(":( GetField发生错误: %s\n"), e.ErrorMessage());
return NULL;
}
return NULL;
}
void finddata::OnCancel2()
{
CDialog::OnCancel();
}
void finddata::OnOk()
{
CString st,input;
CString s1,sql;
m_find.GetWindowText(st);
m_input.GetWindowText(input);
if(input.IsEmpty())
{
AfxMessageBox("有个输入为空");
return;
}
s1.Format("'");
sql.Format(m_sql+" "+st+"="+s1+input+s1);
if(initdata(sql))
{
m_same=true;
CDialog::OnOK();
}
return;
}
void finddata::OnCloseupFind1()
{
m_input.SetReadOnly(false);
}
BOOL finddata::initdata(CString sql)
{
CString data;
m_pRecordset.CreateInstance(__uuidof(Recordset));
try
{
m_pRecordset->Open(_variant_t(sql),
theApp.m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
if(m_pRecordset->BOF)
{
AfxMessageBox("没有找到或输入错误");
return false;
}
FieldPtr m_get,m_get2;
long log;
log=this->GetField(m_pRecordset)->GetCount();
initlist();
for(long i=1;i <= log-1;i++)
{
try
{
m_get=this->GetField(m_pRecordset)->GetItem(_variant_t(i));
data=LPCTSTR(_bstr_t(m_get->GetValue())); //得到字段内容
m_stlist.AddHead(data);
}
catch(_com_error *er)
{
AfxMessageBox(er->ErrorMessage());
}
}
m_pRecordset->MoveNext();
if(m_pRecordset->adoEOF)
{
m_pRecordset->MoveLast();
}
return true;
}
void finddata::init2()
{
CString data1;
_variant_t var;
FieldPtr m_get,m_get2;
long log;
log=this->GetField(m_Recordset)->GetCount();
for(long i=1;i <= log-1;i++)
{
m_get=this->GetField(m_Recordset)->GetItem(_variant_t(i));
data1=LPCTSTR(_bstr_t(m_get->GetName()));//得到字段名
m_find.AddString(data1);
}
m_find.SetCurSel(0);
}
void finddata::initlist()
{
m_stlist.RemoveAll();
}
BOOL finddata::Same()
{
return false;
}
void finddata::Closedata()
{
if(m_pRecordset->State)
{
m_pRecordset->Close();
}
m_pRecordset=NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -