📄 datamodule.pas
字号:
unit DataModule;
interface
uses
SysUtils, Classes, DB, ADODB,Forms,variants,Dialogs;
type
TDM = class(TDataModule)
ADOConnection1: TADOConnection;
ADODataSetBookEdit: TADODataSet;
DataSource1: TDataSource;
ADODataSet2: TADODataSet;
ADODataSetLendBook: TADODataSet;
DataSourceLendBook: TDataSource;
ADODataSetBookType: TADODataSet;
DataSourceBookType: TDataSource;
ADODataSetBookQuery: TADODataSet;
ADODataSetBookStockQuery: TADODataSet;
ADODataSetReaderQuery: TADODataSet;
ADODataSetLendBookQuery: TADODataSet;
ADODataSetUserQuery: TADODataSet;
private
{ Private declarations }
public
{ Public declarations }
procedure InitAdoDatasetBookEdit;
function CCheckBookNumber(bookid:string):boolean; //根据书ID获得书数
function CCheckID(sql:string):boolean; //传入SQL检测ID是否存在(通用)
function GetBookName(bookid:string):string; //根据书ID获得书名
function InsertBookType(value1,value2:string):boolean;
function UpdateBookType(value1,value2:string):boolean;
function DeleteBookType(bookid:string):boolean; //删除图书类型
function GetBookTypeNum(value:string):integer; //获得某类图书在库中总数
function GetBookTypeName(typeid:string):string; //根据书类型ID获得类型名
function GetBookTypeID(typename:string):string; // 根据书类型名获得类型ID
function GetStockBookNum(bookid:string):integer;//获得库存中某书总数
function DeleteBook(bookid:string):boolean; //删除图书数为0的所有图书信息
function ModifyPassword(username,newpass:string):boolean; //修改用户密码
function CheckUserPassword(username,password:string):boolean;//检测密码正确性
function CheckUserName(username:string):boolean; //检测用户名
function GetUserPurviewMenu(username:string):boolean; //获得用户权限可使用菜单
function GetMenuName(menuid:string):string; //通过菜单ID获得菜单名
function GetReaderEducationName(educationid:string):string; //通过学历ID获得学历名
function GetReaderEducationID(educationname:string):string; //通过学历ID获得学历名
function GetReaderTypeName(typeid:string):string; //通过读者类型ID获得类型名
function GetReaderTypeID(typeNAME:string):string; //通过读者类型名获得类型ID
function GetReaderLendBookNum(readercardid:string):integer; //通过读者卡号获得读者所借书数(未归还书数)
function GetReaderLendBookCount(readercardid:string):integer;//通过卡号返回此卡借书总数
function CheckReaderLendBookName(readercardid,bookid:string):boolean;//检查未归还书中有无此书
function SaveUserLongin(username:string;longin:boolean):boolean; //登陆日志
function GetAllBookNum:integer; // 获得库中图书总数
end;
var
DM: TDM;
implementation
uses MainU,ShareU;
{$R *.dfm}
//保存登陆日志
function TDM.SaveUserLongin(username:string;longin:boolean):boolean;
var
Query:TADOQuery;
begin
Query:=TADOQuery.Create(self);
Query.Connection:=ADOConnection1;
try
dm.ADOConnection1.BeginTrans;
if longin then
begin
Query.SQL.Text:='insert into User_LoginLog (username,uptime,downtime)'+
'values (:username,:uptime,:downtime)';
Query.Parameters.ParamByName('username').Value:=username;
Query.Parameters.ParamByName('uptime').Value:=CurUserLonginTime;
Query.Parameters.ParamByName('downtime').Value:=CurUserLonginTime;
end
else
begin
Query.SQL.Text:='update User_LoginLog set downtime=:downtime where'+
' username=:username and uptime=:uptime';
Query.Parameters.ParamByName('downtime').Value:=now;
Query.Parameters.ParamByName('username').Value:=username;
Query.Parameters.ParamByName('uptime').Value:=CurUserLonginTime;
end;
Query.ExecSQL;
dm.ADOConnection1.CommitTrans;
result:=true;
except
dm.ADOConnection1.RollbackTrans;
result:=false;
end;
Query.Close;
Query.Free;
end;
//检查未归还书中有无此书
function TDM.CheckReaderLendBookName(readercardid,bookid:string):boolean;
var
Query:TADOQuery;
begin
Query:=TADOQuery.Create(self);
Query.Connection:=dm.ADOConnection1;
Query.SQL.Text:='select bookid from lend_book where readercardid=:id '+
'and bookid=:bookid and state=1';
Query.Parameters.ParamByName('id').Value:=readercardid;
Query.Parameters.ParamByName('bookid').Value:=bookid;
Query.Open;
if not (query.RecordCount >0) then
Result:=false //没
else
result:=true; //有
Query.Close;
Query.Free;
end;
//通过卡号返回此卡借书总数
function TDM.GetReaderLendBookCount(readercardid:string):integer;
var
Query:TADOQuery;
begin
Query:=TADOQuery.Create(self);
Query.Connection:=dm.ADOConnection1;
Query.SQL.Text:='select lendbook from reader_type where readertypeid in '+
' (select readertypeid from reader_info where '+
' readercardid=:readercardid)';
Query.Parameters.ParamByName('readercardid').Value:=readercardid;
Query.Open;
Result:=query.FieldValues['lendbook'];
Query.Close;
Query.Free;
end;
//通过读者卡号获得读者所借书数(未归还书数)
function TDM.GetReaderLendBookNum(readercardid:string):integer;
var
Query:TADOQuery;
begin
Query:=TADOQuery.Create(self);
Query.Connection:=dm.ADOConnection1;
Query.SQL.Text:='select readercardid from lend_book where readercardid=:'+
'readercardid and state=:state';
Query.Parameters.ParamByName('readercardid').Value:=readercardid;
Query.Parameters.ParamByName('state').Value:=1;
Query.Open;
Result:=Query.RecordCount;
Query.Close;
Query.Free;
end;
//通过学历ID获得学历名
function TDM.GetReaderEducationID(educationname:string):string;
var
Query:TADOQuery;
begin
Query:=TADOQuery.Create(self);
Query.Connection:=ADOConnection1;
Query.SQL.Text:='select educationid from reader_education where '+
' educationname=:name';
Query.Parameters.ParamByName('name').Value:=educationname;
Query.Open;
result:=trim(Query.FieldValues['educationid']);
Query.Close;
Query.Free;
end;
//通过类型ID获得类型名
function TDM.GetReaderTypeName(typeid:string):string;
var
Query:TADOQuery;
begin
Query:=TADOQuery.Create(self);
Query.Connection:=ADOConnection1;
Query.SQL.Text:='select typename from reader_type where '+
' readertypeid=:id';
Query.Parameters.ParamByName('id').Value:=typeid;
Query.Open;
result:=trim(Query.FieldValues['typename']);
Query.Close;
Query.Free;
end;
//通过类型ID获得类型名
function TDM.GetReaderTypeID(typename:string):string;
var
Query:TADOQuery;
begin
Query:=TADOQuery.Create(self);
Query.Connection:=ADOConnection1;
Query.SQL.Text:='select readertypeid from reader_type where '+
' typename=:name';
Query.Parameters.ParamByName('name').Value:=typename;
Query.Open;
result:=trim(Query.FieldValues['readertypeid']);
Query.Close;
Query.Free;
end;
//通过学历ID获得学历名
function TDM.GetReaderEducationName(educationid:string):string;
var
Query:TADOQuery;
begin
Query:=TADOQuery.Create(self);
Query.Connection:=ADOConnection1;
Query.SQL.Text:='select educationname from reader_education where '+
' educationid=:id';
Query.Parameters.ParamByName('id').Value:=educationid;
Query.Open;
result:=trim(Query.FieldValues['educationname']);
Query.Close;
Query.Free;
end;
//通过菜单ID获得菜单名
function TDM.GetMenuName(menuid:string):string;
var
Query:TADOQuery;
begin
Query:=TADOQuery.Create(self);
Query.Connection:=ADOConnection1;
Query.SQL.Text:='select menuname from menu_info where menuid=:id';
Query.Parameters.ParamByName('id').Value:=menuid;
Query.Open;
result:=trim(Query.FieldValues['menuname']);
Query.Close;
Query.Free;
end;
//获得用户权限可使用菜单
function TDM.GetUserPurviewMenu(username:string):boolean;
var
Query:TADOQuery;
tempmenuname:string;
begin
Query:=TADOQuery.Create(self);
Query.Connection:=ADOConnection1;
Query.SQL.Text:='select menuid from user_purview where username=:name';
Query.Parameters.ParamByName('name').Value:=username;
Query.Open;
Query.First;
while not Query.Eof do
begin
tempmenuname:=GetMenuName(Query.FieldByName('menuid').AsString);
EnabledMenu(tempmenuname);
Query.Next;
end;
result:=true;
Query.Close;
Query.Free;
end;
//检测用户名
function TDM.CheckUserName(username:string):boolean;
var
Query:TADOQuery;
begin
Query:=TADOQuery.Create(self);
Query.Connection:=ADOConnection1;
Query.SQL.Text:='select username from user_info where username=:name';
Query.Parameters.ParamByName('name').Value:=username;
Query.Open;
if query.RecordCount=1 then
result:=true
else
result:=false;
Query.Close;
Query.Free;
end;
//检测密码正确性
function TDM.CheckUserPassword(username,password:string):boolean;
var
Query:TADOQuery;
begin
Query:=TADOQuery.Create(self);
Query.Connection:=ADOConnection1;
Query.SQL.Text:='select userpassword from user_info where username=:name';
Query.Parameters.ParamByName('name').Value:=username;
Query.Open;
if trim(Query.FieldByName('userpassword').Value)=password then
result:=true
else
result:=false;
Query.Close;
Query.Free;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -