📄 dmfrm.pas
字号:
try
Qrylogin.SQL.Add('select * from loginright where username=:Aname');
Qrylogin.ParamByName('Aname').AsString:=Ausername;
Qrylogin.Prepare;
Qrylogin.Open;
if qrylogin['right_a']='T' then Result:=0;
if qrylogin['right_b']='T' then Result:=1;
if qrylogin['right_c']='T' then Result:=2;
if qrylogin['right_d']='T' then Result:=3;
except
showmessage('得到用户权限失败!');
end;
end;
procedure TDMbook.openbooktypedb;
begin
if Qrybigtype.Active=true then Qrybigtype.Close;
if Qrysmalltype.Active=true then Qrysmalltype.close;
Qrybigtype.Open;
Qrysmalltype.Open;
end;
procedure TDMbook.closebooktypedb;
begin
if Qrysmalltype.Active=true then Qrysmalltype.Close;
if Qrybigtype.Active=true then Qrybigtype.Close;
qrysmalltype.Filter:=emptystr;
qrysmalltype.Filtered:=false;
qrybigtype.Filter:=emptystr;
qrybigtype.Filtered:=false;
end;
function TDMbook.getBigtypeList: string;
begin
Result:=Emptystr;
openbooktypedb;
with Qrybigtype do
begin
First;
while not eof do
begin
Result:=Result+Qrybigtype['book_bigtype']+'-'+Qrybigtype['book_bigname']+#13#10;
next;
end;
end;
end;
function TDMbook.getSmalltypelist(Abigtype:string): string;
begin
Result:=Emptystr;
openbooktypedb;
with Qrysmalltype do
begin
first;
while not eof do
begin
if Qrysmalltype['book_bigtype']=Abigtype then
Result:=Result+Qrysmalltype['book_type']+'-'+Qrysmalltype['book_smallname']+#13#10;
next;
end;
end;
end;
function TDMbook.addbigtype(Abigtype, Abigtypename: string): boolean;
begin
Result:=true;
Dbasebook.StartTransaction;
try
if SPbigtype.Active then SPbigtype.Active:=false;
SPbigtype.StoredProcName:='INSERT_BOOKBIGTYPE';
SPbigtype.Prepare;
SPbigtype.Params[0].AsString:=Abigtype;
SPbigtype.Params[1].AsString:=Abigtypename;
SPbigtype.ExecProc;
Dbasebook.Commit;
except
Dbasebook.Rollback;
Result:=false;
end;
end;
function TDMbook.addsmalltype(Abigtype, Abooktype,
Asmallname: string): boolean;
begin
Result:=true;
dbasebook.StartTransaction;
try
if SPsmalltype.Active then SPsmalltype.Active:=false;
SPsmalltype.StoredProcName:='INSERT_BOOKSMALLTYPE';
SPsmalltype.Prepare;
SPsmalltype.Params[0].AsString:=Abooktype;
SPsmalltype.Params[1].AsString:=Abigtype;
SPsmalltype.Params[2].AsString:=Asmallname;
SPsmalltype.ExecProc;
dbasebook.Commit;
except
dbasebook.Rollback;
Result:=false;
end;
end;
function TDMbook.deletebigtype(Abigtype: string): boolean;
begin
Result:=true;
dbasebook.StartTransaction;
try
if SPbigtype.Active then SPbigtype.Active:=false;
SPbigtype.StoredProcName:='DELETE_BOOKBIGTYPE';
try
SPbigtype.Prepare;
SPbigtype.Params[0].AsString:=Abigtype;
SPbigtype.Open;
except
end;
if SPbigtype.ParamByName('ISEXISTS').AsInteger=1 then
begin
messagedlg('大类在小类中不为空,不能删除!',mtWarning,[mbOK],0);
Result:=false;
end;
dbasebook.Commit;
except
dbasebook.Rollback;
Result:=false;
end;
end;
function TDMbook.deletesmalltype(Asmalltype: string): boolean;
var
tempint:integer;
temptype:string;
tempbool:boolean;
begin
Result:=true;
tempbool:=true;
if qrybook.Active=true then qrybook.Close;
qrybook.Open;
qrybook.First;
while not qrybook.Eof do
begin
temptype:=qrybook['book_id'];
tempint:=pos('-',qrybook['book_id'])-1;
temptype:=copy(temptype,1,tempint);
if temptype=Asmalltype then
begin
messagedlg('小类在书库中不为空,不能删除!',mtWarning,[mbOK],0);
tempbool:=false;
break;
end;
qrybook.Next;
end;
if tempbool then
begin
dbasebook.StartTransaction;
try
if SPsmalltype.Active then SPsmalltype.Active:=false;
SPsmalltype.StoredProcName:='DELETE_BOOKSMALLTYPE';
try
SPsmalltype.Prepare;
SPsmalltype.Params[0].AsString:=Asmalltype;
SPsmalltype.ExecProc;
except
end;
dbasebook.Commit;
except
dbasebook.Rollback;
Result:=false;
end;
end
else Result:=false;
end;
procedure TDMbook.closebook;
begin
if Qrybook.Active then Qrybook.close;
qrybook.Filter:=emptystr;
qrybook.Filtered:=false;
end;
procedure TDMbook.openbook;
begin
if Qrybook.Active=true then Qrybook.Close;
Qrybook.Open;
end;
procedure TDMbook.booksave(Abookid,Abookname,Apenster,Aprice,Aremark,Apublish:string;
Anumber:integer;Adate,Apubdate:Tdatetime);
begin
begin
dbasebook.StartTransaction;
try
with SPbook do
begin
Prepare;
Params[0].AsString:=Abookid;
//showmessage('eee');
Params[1].AsString:=Abookname;
Params[2].AsString:=Apenster;
Params[3].Asstring:=Aprice;
Params[4].AsInteger:=Anumber;
Params[5].AsDateTime:=Adate;
Params[6].AsBlob:=Aremark;
Params[7].AsString:=Apublish;
Params[8].AsInteger:=Anumber;
Params[9].AsDateTime:=Apubdate;
ExecProc;
end;
dbasebook.Commit;
except
dbasebook.Rollback;
raise;
end;
end;
end;
procedure TDMbook.bookReside(Abookid: string;Acount:integer);
var
booksql:string;
begin
closebook;
booksql:=Qrybook.SQL.Text;
Qrybook.SQL.Clear;
Qrybook.SQL.Add('UPDATE BOOK SET BOOK_RESIDE=BOOK_RESIDE-:ICOUNT');
Qrybook.SQL.Add('WHERE BOOK_ID=:IBOOKID');
Qrybook.ParamByName('ICOUNT').AsInteger:=Acount;
Qrybook.ParamByName('IBOOKID').AsString:=Abookid;
Qrybook.ExecSQL;
closebook;
Qrybook.SQL.Clear;
Qrybook.SQL.Text:=booksql;
Qrybook.Open;
end;
procedure TDMbook.InsertReader(Areaderid, Areaderno, Areadername,
Areaderdept, Areaderphoto: string; Areaderdodate: Tdatetime);
begin
dbasebook.StartTransaction;
try
with SPreader do
begin
Prepare;
Params[0].AsString:=Areaderid;
Params[1].AsString:=Areaderno;
Params[2].AsString:=Areadername;
Params[3].Asstring:=Areaderdept;
Params[4].AsDatetime:=Areaderdodate;
if Areaderphoto<>Emptystr then
Params[5].LoadFromFile(Areaderphoto,ftGraphic);
ExecProc;
end;
dbasebook.Commit;
except
dbasebook.Rollback;
raise;
end;
end;
function TDMbook.getborrowedreader(Abookid: string): string;
begin
Result:=Emptystr;
if Qryborrowitems.Active then Qryborrowitems.Active:=false;
Qryborrowitems.SQL.Clear;
Qryborrowitems.SQL.Add('SELECT * FROM BORROWITEMS');
Qryborrowitems.SQL.Add('WHERE BOOK_ID=:IBOOK_ID');
try
Qryborrowitems.Prepare;
Qryborrowitems.ParamByName('IBOOK_ID').AsString:=Abookid;
Qryborrowitems.Open;
Qryborrowitems.First;
while not Qryborrowitems.Eof do
begin
if qryborrow.Active=false then qryborrow.Open;
qryborrow.First;
qryborrow.Locate('BORROW_ID',Qryborrowitems['BORROW_ID'],[]);
Qryreader.First;
Qryreader.Locate('READER_ID',Qryborrow['READER_ID'],[]);
Result:=Result+'['+Qryreader['READER_NO']+']['+Qryreader['READER_ID']+']'+Qryreader['READER_NAME']+#13#10;
Qryborrowitems.Next;
end;
except
end;
end;
procedure TDMbook.QrybookCalcFields(DataSet: TDataSet);
begin
Qrybook['book_borrowed']:=Qrybook['book_number']-Qrybook['book_reside'];
end;
procedure TDMbook.openreader;
begin
if Qryreader.Active=true then Qryreader.Close;
Qryreader.Open;
end;
procedure TDMbook.closereader;
begin
if Qryreader.Active then Qryreader.Active:=false;
qryreader.Filter:=emptystr;
qryreader.Filtered:=false;
end;
procedure TDMbook.closeborrow;
begin
if Qryborrow.Active then Qryborrow.Close;
qryborrow.Filter:=emptystr;
qryreader.Filtered:=false;
end;
procedure TDMbook.openborrow;
begin
if Qryborrow.Active then Qryborrow.Close;
Qryborrow.Open;
end;
function TDMbook.getborrowedbook(Areaderid: string): string;
var
borrowsql:string;
begin
Result:=Emptystr;
if Qryborrow.Active then Qryborrow.Active:=false;
borrowsql:=Qryborrow.SQL.Text;
Qryborrow.SQL.Clear;
Qryborrow.SQL.Add('select * from BORROWITEMS');
Qryborrow.SQL.Add('where BORROW_ID=(SELECT BORROW_ID FROM BORROWBOOKS');
Qryborrow.SQL.Add('WHERE READER_ID=:IREADER_ID)');
try
Qryborrow.Prepare;
Qryborrow.ParamByName('IREADER_ID').AsString:=Areaderid;
Qryborrow.Open;
while not Qryborrow.Eof do
begin
Result:=Result+'['++Qryborrow['BOOK_ID']+']'+Qryborrow['BOOK_NAME']+#13#10;
Qryborrow.next;
end;
finally
if Qryborrow.Active then Qryborrow.Active:=false;
Qryborrow.SQL.Clear;
Qryborrow.SQL.Text:=borrowsql;
Qryborrow.Open;
end;
end;
function TDMbook.insertborrow(Areaderid: string;
Aborrownumber: integer): integer;
var
Asql:string;
begin
openborrow;
if Qryborrow.Locate('reader_id',Areaderid,[]) then
begin
Result:=Qryborrow['borrow_id'];
closeborrow;
Asql:=Qryborrow.SQL.Text;
Qryborrow.SQL.Clear;
Qryborrow.SQL.Add('update borrowbooks set borrow_number=borrow_number+:Anumber');
try
Qryborrow.Prepare;
Qryborrow.ParamByName('Anumber').AsInteger:=Aborrownumber;
Qryborrow.ExecSQL;
finally
closeborrow;
Qryborrow.SQL.Clear;
Qryborrow.SQL.Text:=Asql;
Qryborrow.Open;
end;
end
else begin
if SPborrow.Active then SPborrow.Active:=false;
SPborrow.StoredProcName:='INSERT_BORROW_BOOK';
try
SPborrow.Prepare;
SPborrow.Params[0].AsString:=Areaderid;
SPborrow.Params[1].AsInteger:=Aborrownumber;
SPborrow.Open;
except
end;
Result:=SPborrow.ParamByName('RBORROW_ID').AsInteger;
end;
end;
procedure TDMbook.insertborrowitems(Aborrowid, Aborrowday: integer;
Abookid, Abookname: string; Aborrowdate: Tdatetime);
begin
try
SPborrowitems.Prepare;
SPborrowitems.Params[0].AsInteger:=Aborrowid;
SPborrowitems.Params[1].AsString:=Abookid;
SPborrowitems.Params[2].AsString:=Abookname;
SPborrowitems.Params[3].AsDateTime:=Aborrowdate;
SPborrowitems.Params[4].AsInteger:=Aborrowday;
SPborrowitems.ExecProc;
except
end;
end;
procedure TDMbook.getborrowdateday(Areaderid, Abookid: string;
var Aborrowdate, Aborrowday,Arenewaldate,Arenewalday: string);
var
tempsql:string;
begin
if Qryborrow.Active then Qryborrow.Active:=false;
tempsql:=Qryborrow.SQL.Text;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -