📄 comadmtask.h
字号:
#include <windows.h>
#include "datas.h"
#include "AdoConnect.h"
#include "resource.h"
void ComAdmTask(HWND);
LRESULT CALLBACK dpComAdmTask(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK dpComAdmTask(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
AdoConnect ado;
TCHAR book[MAX_STRING];
TCHAR lisence[MAX_STRING];
TCHAR str1[MAX_STRING];
TCHAR strreaderid[MAX_STRING];
TCHAR strbookid[MAX_STRING];
_bstr_t bstr;
_RecordsetPtr pr;
switch (message)
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDBORROW)
{
SendMessage(GetDlgItem(hDlg, IDC_ATASK_BOOK), WM_GETTEXT, MAX_STRING-1, (LPARAM)book);
SendMessage(GetDlgItem(hDlg, IDC_ATASK_READER), WM_GETTEXT, MAX_STRING-1, (LPARAM)lisence);
if(0 == lstrcmp(book, "") || 0 == lstrcmp(lisence, ""))
{
MessageBox(hDlg, "图书名字与读者证号都不能为空!", "Fail!", MB_ICONSTOP);
return TRUE;
}
/*咨询读者表*/
UniteBSTR(bstr, var "select * from reader where lisence='", var lisence, var "';");
ado.OnInitDBConnect();
pr = ado.GetRecordset(bstr);
if(pr->adoBOF || pr->adoEOF)
{
MessageBox(hDlg, "此读者不存在!", "Fail!", MB_ICONSTOP);
ado.ExitConnect();
return TRUE;
}
int borroweds = atoi(lpstr pr->GetCollect("borroweds"));
lstrcpy(str1, lpstr pr->GetCollect("type"));
int maxborrow;
if(0 == lstrcmp(str1, "二级"))
maxborrow = 8;
if(0 == lstrcmp(str1, "一级"))
maxborrow = 15;
if(maxborrow <= borroweds)
{
MessageBox(hDlg, "借书数目已经到达最大限制!", "Fail!", MB_ICONSTOP);
ado.ExitConnect();
return TRUE;
}
int readerid = atoi(lpstr pr->GetCollect("id"));
wsprintf(strreaderid, "%d", readerid);
/*咨询图书表*/
UniteBSTR(bstr, var "select * from book where name='", var book, var "';");
pr = ado.GetRecordset(bstr);
if(pr->adoBOF || pr->adoEOF)
{
MessageBox(hDlg, "此书不存在!", "Fail!", MB_ICONSTOP);
ado.ExitConnect();
return TRUE;
}
lstrcpy(str1, lpstr pr->GetCollect("state"));
if(0 != lstrcmp(str1, "在馆"))
{
MessageBox(hDlg, "此书不在馆!", "Fail!", MB_ICONSTOP);
ado.ExitConnect();
return TRUE;
}
int bookid = atoi(lpstr pr->GetCollect("id"));
wsprintf(strbookid, "%d", bookid);
/*修改图书表*/
UniteBSTR(bstr, var "update book set state='借出' where id=", var strbookid, var ";");
ado.ExecuteSQL(bstr);
/*修改读者表*/
UniteBSTR(bstr, var "update reader set borroweds=borroweds+1 where lisence='", var lisence, var "';");
ado.ExecuteSQL(bstr);
/*插入事务表*/
if(8 == maxborrow)
UniteBSTR(bstr, var "insert into task(bookid, readerid, starttime, endtime) values(", var strbookid, var ",", var strreaderid,
var ",", var "GETDATE()", var ",", var "GETDATE()+30", var ");");
if(15 == maxborrow)
UniteBSTR(bstr, var "insert into task(bookid, readerid, starttime, endtime) values(", var strbookid, var ",", var strreaderid,
var ",", var "GETDATE()", var ",", var "GETDATE()+60", var ");");
ado.ExecuteSQL(bstr);
ado.ExitConnect();
UniteBSTR(bstr, var "证号=", var lisence, var " 借 书名=", var book, var ";");
SendMessage(GetDlgItem(hDlg, IDC_ATASK_LIST), LB_INSERTSTRING, 0, (LPARAM)lpstr bstr);
return TRUE;
}
if (LOWORD(wParam) == IDRETURN)
{
SendMessage(GetDlgItem(hDlg, IDC_ATASK_BOOK), WM_GETTEXT, MAX_STRING-1, (LPARAM)book);
SendMessage(GetDlgItem(hDlg, IDC_ATASK_READER), WM_GETTEXT, MAX_STRING-1, (LPARAM)lisence);
if(0 == lstrcmp(book, ""))
{
MessageBox(hDlg, "图书名字不能为空!", "Fail!", MB_ICONSTOP);
return TRUE;
}
ado.OnInitDBConnect();
UniteBSTR(bstr, var "select id from book where name='", var book, var "';");
pr = ado.GetRecordset(bstr);
if(pr->adoBOF || pr->adoEOF)//图书不存在
{
MessageBox(hDlg, "此书不存在!", "Fail!", MB_ICONSTOP);
ado.ExitConnect();
return TRUE;
}
int bookid = atoi(lpstr pr->GetCollect("id"));
wsprintf(strbookid, "%d", bookid);
UniteBSTR(bstr, var "select * from task where bookid=", var strbookid, var ";");
pr = ado.GetRecordset(bstr);
if(pr->adoBOF || pr->adoEOF)//事务不存在
{
MessageBox(hDlg, "此借书记录不存在!", "Fail!", MB_ICONSTOP);
ado.ExitConnect();
return TRUE;
}
int readerid = atoi(lpstr pr->GetCollect("readerid"));
wsprintf(strreaderid, "%d", readerid);
TCHAR strtaskid[MAX_STRING];
int taskid = atoi(lpstr pr->GetCollect("id"));
wsprintf(strtaskid, "%d", taskid);
/*修改图书表*/
UniteBSTR(bstr, var "update book set state='在馆' where id=", var strbookid, var ";");
ado.ExecuteSQL(bstr);
/*修改读者表*/
UniteBSTR(bstr, var "update reader set borroweds=borroweds-1 where id=", var strreaderid, var ";");
ado.ExecuteSQL(bstr);
/*修改事务表*/
UniteBSTR(bstr, var "delete from task where id=", var strtaskid, var ";");
ado.ExecuteSQL(bstr);
ado.ExitConnect();
UniteBSTR(bstr, var "证号=", var lisence, var " 还 书名=", var book, var ";");
SendMessage(GetDlgItem(hDlg, IDC_ATASK_LIST), LB_INSERTSTRING, 0, (LPARAM)lpstr bstr);
return TRUE;
}
if (LOWORD(wParam) == IDCLEAR)
{
SendMessage(GetDlgItem(hDlg, IDC_ATASK_BOOK), WM_SETTEXT, 0, (LPARAM)"");
SendMessage(GetDlgItem(hDlg, IDC_ATASK_READER), WM_SETTEXT, 0, (LPARAM)"");
return TRUE;
}
if(LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
return TRUE;//WM_COMMAND end
default:
return FALSE;
}
}
void ComAdmTask(HWND hWnd)
{
DialogBox((HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),
(LPCTSTR)IDD_ADM_TASK, hWnd, (DLGPROC)dpComAdmTask);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -