// BookRDlg.cpp : implementation file // #include "stdafx.h" #include "test.h" #include "BookRDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CBookRDlg dialog CBookRDlg::CBookRDlg(CWnd* pParent /*=NULL*/) : CDialog(CBookRDlg::IDD, pParent) { //{{AFX_DATA_INIT(CBookRDlg) m_bookid = _T(""); //}}AFX_DATA_INIT } void CBookRDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CBookRDlg) DDX_Text(pDX, IDC_BOOKID, m_bookid); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CBookRDlg, CDialog) //{{AFX_MSG_MAP(CBookRDlg) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CBookRDlg message handlers void CBookRDlg::OnOK() { // TODO: Add extra validation here UpdateData(true); //数据更新 if(m_bookid=="") { AfxMessageBox("请填入书籍ID号码"); //书籍的ID为空,则弹出消息框 return; } CoInitialize(NULL); _ConnectionPtr pconnect(__uuidof(Connection)); _RecordsetPtr record(__uuidof(Recordset)); _CommandPtr comd(__uuidof(Command)); pconnect->ConnectionString="Provider=MSDASQL.1;Persist Security Info=False;User ID=Administrator;Data Source=student;Initial Catalog=Library"; pconnect->Open("","","",NULL); comd->put_ActiveConnection(_variant_t((IDispatch *)pconnect)); //输入数据的合法性验证,即是否在存储表中有记录 CString cmd="SELECT count(*) FROM READBOOK WHERE BID='"; cmd+=m_bookid; cmd+="'"; comd->CommandText=_bstr_t(cmd); //得到SQL语句 record=comd->Execute(NULL,NULL,adCmdText); //查询记录 variant_t vCount = record->GetCollect((_variant_t)((long)0)); //如果记录不是唯一的,那么有可能没有记录,或者记录不止一条 if(vCount.lVal==0) { AfxMessageBox("数据库中无此记录"); return; } //如果记录不是唯一的,那么有可能没有记录,或者记录不止一条 if(vCount.lVal>1) { AfxMessageBox("数据库错误,记录大于1"); return; } //进行数据存储 cmd="DELETE FROM READBOOK WHERE BID='"; cmd+=m_bookid; cmd+="'"; comd->CommandText=_bstr_t(cmd); //得到SQL语句 record=comd->Execute(NULL,NULL,adCmdText); //修改数据库 AfxMessageBox("还书成功"); //将此书的存储状态设置为不可借 cmd="UPDATE BOOK SET BSTATE='可借' WHERE BID='"; cmd+=m_bookid; cmd+="'"; comd->CommandText=_bstr_t(cmd); //得到SQL语句 record=comd->Execute(NULL,NULL,adCmdText); //修改书籍状态为可借 pconnect->Close(); comd.Release(); record.Release(); pconnect.Release(); CoUninitialize(); m_bookid=""; UpdateData(false); }