⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dmfrm.pas

📁 基于Interbase的图书管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
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 + -