?? 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'];
//判斷學(xué)號
queryString := 'select 學(xué)生姓名,學(xué)生性別,口令,年級,學(xué)生基本信息.專業(yè)編號,專業(yè)基本信息.院系編號,專業(yè)基本信息.專業(yè)名稱,公共必修學(xué)分,專業(yè)必修學(xué)分,專業(yè)選修學(xué)分,任選學(xué)分 from 學(xué)生基本信息,專業(yè)基本信息 where 學(xué)生編號=''' + SdXH + ''' and 學(xué)生基本信息.專業(yè)編號=專業(yè)基本信息.專業(yè)編號';
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">錯誤:學(xué)生編號不正確!</font></b></p><hr><p align="center"><a href="javascript:history.back()">返回</a></p></BODY></HTML>';
Exit;
end;
SdXM := ADOQryTemp.FieldByName('學(xué)生姓名').AsString;
if ADOQryTemp.FieldByName('學(xué)生性別').AsBoolean then SdXB := '1' else SdXB := '0';
SdZyBH := ADOQryTemp.FieldByName('專業(yè)編號').AsString;
SdZyMc := ADOQryTemp.FieldByName('專業(yè)名稱').AsString;
SdNj := ADOQryTemp.FieldByName('年級').AsString;
GongBi1 := ADOQryTemp.FieldByName('公共必修學(xué)分').AsString;
ZhuanBi1 := ADOQryTemp.FieldByName('專業(yè)必修學(xué)分').AsString;
ZhuanXuan1 := ADOQryTemp.FieldByName('專業(yè)選修學(xué)分').AsString;
RenXuan1 := ADOQryTemp.FieldByName('任選學(xué)分').AsString;
if SdVerify = 'false' then
begin
SdVerify := 'true';
SdXM := ADOQryTemp.FieldByName('學(xué)生姓名').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('@學(xué)生編號').Value := SdXH;
ExecProc;
LoginSN := Parameters.ParamByName('@選課ID').Value;
end;
//設(shè)置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 學(xué)生重修課程 where 學(xué)生編號=''' + 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">錯誤:本學(xué)期課程<' + 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('@學(xué)生編號').Value := SdXH;
Parameters.ParamByName('@課程編號').Value := KcBH;
Parameters.ParamByName('@課堂號').Value := KtH;
ExecProc;
case Parameters.ParamByName('@返回碼').Value of
1:
begin //重復(fù)選課
Response.Content := '<HTML><BODY><p align="center"><b><font color="#FF0000" size="4">錯誤:課程<' + KcBH + '>已在本學(xué)期選修,請檢查輸入是否正確</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 //人數(shù)限制-改選
Response.Content := '<HTML><BODY><p align="center"><b><font color="#FF0000" size="4">錯誤:課程<' + KcBH + '>第' + KtH + '課堂選課人數(shù)已滿!</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
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -