query.cpp
来自「这是我做的一个电子图书管理系统的软件程序。希望对大家有帮助!」· C++ 代码 · 共 184 行
CPP
184 行
// Query.cpp : implementation file
//
#include "stdafx.h"
#include "BOOKS.h"
#include "Query.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CQuery dialog
CQuery::CQuery(CWnd* pParent /*=NULL*/)
: CDialog(CQuery::IDD, pParent)
{
m_querybl=true;
//{{AFX_DATA_INIT(CQuery)
m_NAME = _T("");
m_AUTHOR = _T("");
m_PUBLISHER = _T("");
//}}AFX_DATA_INIT
}
void CQuery::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CQuery)
DDX_Text(pDX, IDC_QUERY_NAME, m_NAME);
DDX_Text(pDX, IDC_QUERY_AUTHOR, m_AUTHOR);
DDX_Text(pDX, IDC_QUERY_PUBLISHER, m_PUBLISHER);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CQuery, CDialog)
//{{AFX_MSG_MAP(CQuery)
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CQuery message handlers
void CQuery::OnCancel()
{
// TODO: Add extra cleanup here
m_querybl=true;
CDialog::OnCancel();
DestroyWindow();
}
void CQuery::OnOK()
{
UpdateData(true);
if(m_pBook.IsOpen())
m_pBook.Close();
CString str="";
CString and=" and ";
int i=0;
/*if(0!=m_ID)
{
CString id;
id.Format("ID=%d",m_ID);
str=id;
i=1;
}*/
if(""!=m_NAME)
{
CString name;
name.Format("NAME='%s'",m_NAME);
if(i==1)
{
str+=and;
str+=name;
}
else
{
str=name;
i=1;
}
}
if(""!=m_AUTHOR)
{
CString author;
author.Format("AUTHOR='%s'",m_AUTHOR);
if(i==1)
{
str+=and;
str+=author;
}
else
{
str=author;
i=1;
}
}
if(""!=m_PUBLISHER)
{
CString publisher;
publisher.Format("PUBLISHER='%s'",m_PUBLISHER);
if(i==1)
{
str+=and;
str+=publisher;
}
else
{
str=publisher;
i=1;
}
}
m_pBook.m_strFilter=str;
//m_pBook.m_strSort="ID ASC";
m_pBook.Open();
//CDialog *m_pform=(CDialog *)GetDlgItem(IDD_BOOKS_FORM);
//CListCtrl *m_plist=(CListCtrl *)::GetDlgItem(IDC_BOOKLIST,m_pform->m_hWnd);
m_pbooklist->DeleteAllItems();
RushListctrl(&m_pBook,*m_pbooklist,str);
//DestroyWindow();
//CDialog::OnOK();
}
void CQuery::RushListctrl(CRecordset *m_pRecord, CListCtrl &m_list, CString m_str)
{
if(m_pRecord->IsOpen())
m_pRecord->Close();
m_pRecord->m_strFilter=m_str;
//if(m_pRecord==m_pSet)
m_pRecord->m_strSort="NAME ASC";
m_pRecord->Open();
LV_ITEM lvi;
lvi.mask=LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM;
lvi.iSubItem=0;
//lvi.pszText=(char *)data[0];
lvi.iImage = 0;
lvi.iItem=0;
for(int count=0;!m_pRecord->IsEOF();m_pRecord->MoveNext(),count++)
{//插入表项
//char str[10];
int k=m_pRecord->GetODBCFieldCount();
CString data[8];
//itoa(m_pRecord->m_ID,str,10);
CDBVariant varvalue;
for(int i=1;i<k;i++)
{
m_pRecord->GetFieldValue((short)i,varvalue);
if(DBVT_LONG==varvalue.m_dwType)
data[i].Format("%d",varvalue.m_lVal);
if(DBVT_STRING==varvalue.m_dwType)
data[i].Format("%s",varvalue.m_pstring->GetBuffer(1));
if(DBVT_DATE==varvalue.m_dwType)
data[i].Format("%d-%d",varvalue.m_pdate->year,varvalue.m_pdate->month);
}
lvi.pszText=data[1].GetBuffer(1);
m_list.InsertItem(&lvi);
for (int j=1;j<k;j++)
m_list.SetItemText(count,j,data[j+1]);
}
m_pRecord->Close();
m_pRecord->m_strFilter="";
m_pRecord->m_strSort="";
m_pRecord->Open();
// m_editID=0;
}
void CQuery::OnDestroy()
{
CDialog::OnDestroy();
//delete this;
// TODO: Add your message handler code here
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?