📄 unit1.pas
字号:
unit Unit1;
interface
uses
SysUtils, Windows, Classes, HTTPApp, HTTPProd, DB, ADODB, DateUtils;
type
TWebModule1 = class(TWebModule)
PageMain: TPageProducer;
PageFail: TPageProducer;
PageLogin: TPageProducer;
procedure WebModule1aiinitAction(Sender: TObject; Request: TWebRequest;
Response: TWebResponse; var Handled: Boolean);
procedure WebModule1aisubmitAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
procedure WebModule1ailoginAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
procedure PageLoginHTMLTag(Sender: TObject; Tag: TTag;
const TagString: string; TagParams: TStrings;
var ReplaceText: string);
procedure PageMainHTMLTag(Sender: TObject; Tag: TTag;
const TagString: string; TagParams: TStrings;
var ReplaceText: string);
procedure PageFailHTMLTag(Sender: TObject; Tag: TTag;
const TagString: string; TagParams: TStrings;
var ReplaceText: string);
procedure WebModuleCreate(Sender: TObject);
procedure WebModuleDestroy(Sender: TObject);
procedure WebModuleAfterDispatch(Sender: TObject; Request: TWebRequest;
Response: TWebResponse; var Handled: Boolean);
private
{ Private declarations }
ADOConnection1: TADOConnection;
ADOQuery1, ADOQryTemp: TADOQuery;
ADOStoredProc1: TADOStoredProc; //登录
ADOStoredProc2: TADOStoredProc; //选课
ADOStoredProc3: TADOStoredProc; //删除
queryString: string;
ScriptName: string;
SubmitType: string;
LoginSN: string;
SdVerify: string;
SdTotal: string;
SdXH: string;
SdXM: string;
SdZyBH: string;
SdZyMc: string;
SdXB: string;
SdNj: string;
GongBi1, ZhuanBi1, ZhuanXuan1, RenXuan1: string;
KcBH, KtH, KcMc: string;
KcbhList: TStringList;
public
{ Public declarations }
end;
var
WebModule1: TWebModule1;
implementation
{$R *.dfm}
procedure TWebModule1.WebModule1aiinitAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
SdPwd: string;
aCookie: TStringList;
begin
SdVerify := Request.ContentFields.Values['strVerify'];
SdXH := Request.ContentFields.Values['strUser'];
SdPwd := Request.ContentFields.Values['strPass'];
//判断学号
queryString := 'select 学生姓名,学生性别,口令,年级,学生基本信息.专业编号,专业基本信息.院系编号,专业基本信息.专业名称,公共必修学分,专业必修学分,专业选修学分,任选学分 from 学生基本信息,专业基本信息 where 学生编号=''' + SdXH + ''' and 学生基本信息.专业编号=专业基本信息.专业编号';
ADOQryTemp.Close;
ADOQryTemp.SQL.Clear;
ADOQryTemp.SQL.Add(queryString);
ADOQryTemp.Open;
if ADOQryTemp.Eof then
begin
Response.Content := '<HTML><BODY><p align="center"><b><font color="#FF0000" size="4">错误:学生编号不正确!</font></b></p><hr><p align="center"><a href="javascript:history.back()">返回</a></p></BODY></HTML>';
Exit;
end;
SdXM := ADOQryTemp.FieldByName('学生姓名').AsString;
if ADOQryTemp.FieldByName('学生性别').AsBoolean then SdXB := '1' else SdXB := '0';
SdZyBH := ADOQryTemp.FieldByName('专业编号').AsString;
SdZyMc := ADOQryTemp.FieldByName('专业名称').AsString;
SdNj := ADOQryTemp.FieldByName('年级').AsString;
GongBi1 := ADOQryTemp.FieldByName('公共必修学分').AsString;
ZhuanBi1 := ADOQryTemp.FieldByName('专业必修学分').AsString;
ZhuanXuan1 := ADOQryTemp.FieldByName('专业选修学分').AsString;
RenXuan1 := ADOQryTemp.FieldByName('任选学分').AsString;
if SdVerify = 'false' then
begin
SdVerify := 'true';
SdXM := ADOQryTemp.FieldByName('学生姓名').AsString;
queryString := 'select count(*) from 选课登记 where datediff(mi,登录时间,getdate())<30';
ADOQryTemp.Close;
ADOQryTemp.SQL.Clear;
ADOQryTemp.SQL.Add(queryString);
ADOQryTemp.Open;
SdTotal := ADOQryTemp.Fields[0].AsString;
Response.Content := PageLogin.Content;
Exit;
end;
if SdPwd <> Trim(ADOQryTemp.FieldByName('口令').AsString) then
begin
Response.Content := '<HTML><BODY><p align="center"><b><font color="#FF0000" size="4">错误:密码不正确,请重新输入!</font></b></p><hr><p align="center"><a href="javascript:history.back()">返回</a></p></BODY></HTML>';
Exit;
end;
//选课资格审核
with ADOStoredProc1 do
begin
Parameters.ParamByName('@学生编号').Value := SdXH;
ExecProc;
LoginSN := Parameters.ParamByName('@选课ID').Value;
end;
//设置Cookie
aCookie := TStringList.Create;
aCookie.Add('LoginSN="' + LoginSN + '"');
Response.SetCookieField(aCookie, Request.Host, '/', IncMinute(Now, 30), False);
aCookie.Free;
KcBH := '';
KtH := '';
KcMc := '';
ADOQuery1.Close;
ADOQuery1.Parameters[0].Value := SdXH;
ADOQuery1.Open;
Response.Content := PageMain.Content;
Handled := true;
end;
procedure TWebModule1.WebModule1aisubmitAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
i: integer;
aCookie: TStringList;
begin
SubmitType := Request.ContentFields.Values['strSubmitType'];
LoginSN := Request.ContentFields.Values['LoginSN'];
SdXH := Request.ContentFields.Values['strSdXH'];
SdXM := Request.ContentFields.Values['strSdXM'];
SdZyBH := Request.ContentFields.Values['strSdZyBH'];
SdZyMc := Request.ContentFields.Values['strSdZyMc'];
SdXb := Request.ContentFields.Values['strSdXb'];
SdNj := Request.ContentFields.Values['strSdNj'];
GongBi1 := Request.ContentFields.Values['strGongBi1'];
ZhuanBi1 := Request.ContentFields.Values['strZhuanBi1'];
ZhuanXuan1 := Request.ContentFields.Values['strZhuanXuan1'];
RenXuan1 := Request.ContentFields.Values['strRenXuan1'];
KcBH := Request.ContentFields.Values['strKcBH'];
KtH := Request.ContentFields.Values['strKtH'];
KcMc := Request.ContentFields.Values['strKcMc'];
KcbhList := TStringList.Create;
KcbhList.Delimiter := ',';
KcbhList.DelimitedText := Request.ContentFields.Values['strDelnoteSN'];
if SubmitType = 'logout' then
begin
queryString := 'delete 选课登记 where SN=''' + LoginSN + '''';
ADOQryTemp.Close;
ADOQryTemp.SQL.Clear;
ADOQryTemp.SQL.Add(queryString);
ADOQryTemp.ExecSQL;
aCookie := TStringList.Create;
aCookie.Add('LoginSN"' + LoginSN + '"');
Response.SetCookieField(aCookie, Request.Host, '/', (Now - 1), False);
aCookie.Free;
SdVerify := '';
SdXH := '';
SdXM := '';
queryString := 'select count(*) from 选课登记 where datediff(mi,登录时间,getdate())<30';
ADOQryTemp.Close;
ADOQryTemp.SQL.Clear;
ADOQryTemp.SQL.Add(queryString);
ADOQryTemp.Open;
SdTotal := ADOQryTemp.Fields[0].AsString;
Response.Content := PageLogin.Content;
Exit;
end;
if Request.CookieFields.Values['LoginSN'] <> '"' + LoginSN + '"' then
begin
Response.Content := '<HTML><BODY><p align="center"><b><font color="#FF0000" size="4">错误:你未登录或超时,请重新登录</font></b></p><hr><p align="center"><a href="' + ScriptName + '/login">返回</a></p></BODY></HTML>';
Exit;
end;
if SubmitType = 'getcx' then
begin
queryString := 'select * from 学生重修课程 where 学生编号=''' + SdXH + '''';
ADOQryTemp.Close;
ADOQryTemp.SQL.Clear;
ADOQryTemp.SQL.Add(queryString);
ADOQryTemp.Open;
Response.Content := PageFail.Content;
Exit;
end
else if SubmitType = 'getkc' then
begin
queryString := 'select 课程名称 from 选课手册 where 课程编号=''' + KcBH + '''';
ADOQryTemp.Close;
ADOQryTemp.SQL.Clear;
ADOQryTemp.SQL.Add(queryString);
ADOQryTemp.Open;
if ADOQryTemp.IsEmpty then
begin
Response.Content := '<HTML><BODY><p align="center"><b><font color="#FF0000" size="4">错误:本学期课程<' + KcBH + '>不存在,请检查并重新输入</font></b></p><hr><p align="center"><a href="javascript:history.back()">返回</a></p></BODY></HTML>';
Exit;
end;
KtH := '';
KcMc := ADOQryTemp.FieldByName('课程名称').AsString;
ADOQuery1.Close;
ADOQuery1.Parameters[0].Value := SdXH;
ADOQuery1.Open;
Response.Content := PageMain.Content;
Handled := true;
end
else if SubmitType = 'getweek' then
begin
ADOQuery1.Close;
ADOQuery1.Parameters[0].Value := SdXH;
ADOQuery1.Open;
Response.Content := PageMain.Content;
Handled := true;
end
else if SubmitType = 'add' then
begin
with ADOStoredProc2 do
begin
Parameters.ParamByName('@学生编号').Value := SdXH;
Parameters.ParamByName('@课程编号').Value := KcBH;
Parameters.ParamByName('@课堂号').Value := KtH;
ExecProc;
case Parameters.ParamByName('@返回码').Value of
1:
begin //重复选课
Response.Content := '<HTML><BODY><p align="center"><b><font color="#FF0000" size="4">错误:课程<' + KcBH + '>已在本学期选修,请检查输入是否正确</font></b></p><hr><p align="center"><a href="javascript:history.back()">返回</a></p></BODY></HTML>';
Exit;
end;
2:
begin //课堂号不存在
Response.Content := '<HTML><BODY><p align="center"><b><font color="#FF0000" size="4">错误:课堂号<' + KtH + '>不存在,请检查并重新输入</font></b></p><hr><p align="center"><a href="javascript:history.back()">返回</a></p></BODY></HTML>';
Exit;
end;
3:
begin //限选男生
Response.Content := '<HTML><BODY><p align="center"><b><font color="#FF0000" size="4">错误:课程<' + KcBH + '>限选男生!</font></b></p><hr><p align="center"><a href="javascript:history.back()">返回</a></p></BODY></HTML>';
Exit;
end;
4:
begin //限选女生
Response.Content := '<HTML><BODY><p align="center"><b><font color="#FF0000" size="4">错误:课程<' + KcBH + '>限选女生!</font></b></p><hr><p align="center"><a href="javascript:history.back()">返回</a></p></BODY></HTML>';
Exit;
end;
5:
begin //人数限制-改选
Response.Content := '<HTML><BODY><p align="center"><b><font color="#FF0000" size="4">错误:课程<' + KcBH + '>第' + KtH + '课堂选课人数已满!</font></b></p><hr><p align="center"><a href="javascript:history.back()">返回</a></p></BODY></HTML>';
Exit;
end;
end;
end;
SubmitType := '';
KcBH := '';
KtH := '';
KcMc := '';
ADOQuery1.Close;
ADOQuery1.Parameters[0].Value := SdXH;
ADOQuery1.Open;
Response.Content := PageMain.Content;
Handled := true;
end else if SubmitType = 'del' then
begin
for i := 0 to KcbhList.Count - 1 do
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -