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

📄 datamodule.pas

📁 包含详细的代码设计,实现图书管理系统功能.是一个很好的实例
💻 PAS
📖 第 1 页 / 共 2 页
字号:
end;

//修改用户密码
function TDM.ModifyPassword(username,newpass:string):boolean;
var
  Query:TADOQuery;
begin
  Query:=TADOQuery.Create(self);
  Query.Connection:=ADOConnection1;
  try
    ADOConnection1.BeginTrans;

    Query.SQL.Text:='update user_info set userpassword=:pass where username=:name';
    Query.Parameters.ParamByName('name').Value:=username;
    Query.Parameters.ParamByName('pass').Value:=newpass;

    Query.ExecSQL;
    Adoconnection1.CommitTrans;
    result:=true;
  except
    Adoconnection1.RollbackTrans;
    result:=false;
  end;
  Query.Close;
  Query.Free;
end;

//删除图书数为0的所有图书信息
function TDM.DeleteBook(bookid:string):boolean;
var
  Query:TADOQuery;
begin
  //result:=false;
  Query:=TADOQuery.Create(self);
  Query.Connection:=ADOConnection1;
  try
    ADOConnection1.BeginTrans;

    Query.SQL.Text:='delete from book_info where bookid=:id ';
    Query.Parameters.ParamByName('id').Value:=bookid;
    query.ExecSQL;
    query.SQL.Clear;
    Query.SQL.Text:='delete from book_stock where bookid=:id' ;
    Query.Parameters.ParamByName('id').Value:=bookid;
    query.ExecSQL;
    dm.ADOConnection1.CommitTrans;
    result:=true;
    dm.InitAdoDatasetBookEdit;        //刷新
    except
       dm.ADOConnection1.RollbackTrans;
       result:=false;
    end;
  Query.Close;
  query.Free;
end;

//获得库存中某书总数
function TDM.GetStockBookNum(bookid:string):integer;
var
  Query:TADOQuery;
begin
   result:=0;
   Query:=TADOQuery.Create(self);
   Query.Connection:=ADOConnection1;
   Query.SQL.Text:='select bookinnumber,bookoutnumber from book_stock '+
                   'where bookid=:id';
   Query.Parameters.ParamByName('id').Value:=bookid;
   Query.Open;
   while not Query.Eof do
   begin
       result:=result + Query.FieldByName('bookinnumber').AsInteger -
                                      Query.FieldByName('bookoutnumber').AsInteger;
       Query.Next;
   end;
   Query.Close;
   Query.Free;
end;

//根据书类型获得类型名
function TDM.GetBookTypeName(typeid:string):string;
var
  Query:TADOQuery;
begin
   Query:=TADOQuery.Create(self);
   Query.Connection:=ADOConnection1;
   Query.SQL.Text:='select typename from book_type where booktypeid=:id';
   Query.Parameters.ParamByName('id').Value:=typeid;
   Query.Open;
   result:=Query.FieldByName('typename').AsString;
   Query.Close;
   Query.Free;
end;

//根据书类型名获得类型ID
function TDM.GetBookTypeID(typename:string):string;
var
  Query:TADOQuery;
begin
   Query:=TADOQuery.Create(self);
   Query.Connection:=ADOConnection1;
   Query.SQL.Text:='select booktypeid from book_type where typename=:name';
   Query.Parameters.ParamByName('name').Value:=typename;
   Query.Open;
   result:=Query.FieldByName('booktypeid').AsString;
   Query.Close;
   Query.Free;
end;

//获得某类图书在库中总数
function TDM.GetBookTypeNum(value:string):integer; 
var
  Query:TADOQuery;
begin
   Query:=TADOQuery.Create(self);
   Query.Connection:=ADOConnection1;
   Query.SQL.Text:='select bookid from book_INFO where booktypeid=:id';
   Query.Parameters.ParamByName('id').Value:=value;
   Query.Open;
   result:=query.RecordCount;
   Query.Close;
   Query.Free;
end;

//删除图书类型
function TDM.DeleteBookType(bookid:string):boolean;
var
  Query:TADOQuery;
begin
   Query:=TADOQuery.Create(self);
   Query.Connection:=ADOConnection1;
   Query.SQL.Add('select booktypeid from book_info where booktypeid='''+bookid+'''');
   Query.Open;
   if query.RecordCount>0 then         //库中有此类的图书就不能删除
   begin
       result:=false;
       messagedlg('有此类图书,不能删除此类!!',mtinformation,[mbyes],0);
       Query.Close;
       Query.Free;
       exit;
   end;
   try
     try
       ADOconnection1.BeginTrans;
       Query.SQL.Text:='delete from book_type where booktypeid=:id';
       Query.Parameters.ParamByName('id').Value:=bookid;
       Query.ExecSQL;
       ADOConnection1.CommitTrans;
       result:=true;
     except
       ADOConnection1.RollbackTrans;
       result:=false;
       messagedlg('删除失败!!',mtinformation,[mbyes],0);
     end;
   finally
     Query.Close;
     Query.Free;
   end;
end;

//更新图书类型
function TDM.UpdateBookType(value1,value2:string):boolean;
var
  Query:TADOQuery;
begin
   ADOconnection1.BeginTrans;
   Query:=TADOQuery.Create(self);
  try
   Query.Connection:=ADOConnection1;
   Query.SQL.Text:='update book_type set typename=:name where booktypeid=:id';
   Query.Parameters.ParamByName('name').Value:=value2;
   Query.Parameters.ParamByName('id').Value:=value1;
   Query.ExecSQL;
   ADOConnection1.CommitTrans;
   result:=true;
  except
    ADOConnection1.RollbackTrans;
    result:=false;
  end;
  Query.Close;
  Query.Free;
end;

//插入图书类型
function TDM.InsertBookType(value1,value2:string):boolean;
var
  Query:TADOQuery;
begin
   Query:=TADOQuery.Create(self);
   Query.Connection:=ADOConnection1;
   Query.SQL.Text:='insert into book_type (booktypeid,typename) values (:id,:name)';
   Query.Parameters.ParamByName('name').Value:=value2;
   Query.Parameters.ParamByName('id').Value:=value1;
   try
     ADOconnection1.BeginTrans;
     Query.ExecSQL;
     ADOConnection1.CommitTrans;
     result:=true;
    except
      ADOConnection1.RollbackTrans;
      result:=false;
    end;
  Query.Close;
  Query.Free;
end;

//打开ADODATASET1
procedure TDM.InitAdoDatasetBookEdit;      
begin
  AdoDatasetBookEdit.Close;
  AdoDatasetBookEdit.CommandText:=' select book_info.* ' +
                             ' from Book_info,book_stock '+
                          ' where book_info.bookid = book_stock.bookid ' +
                          ' and book_stock.booklast=1 order by book_info.bookid asc';
  AdoDatasetBookEdit.CommandType:=cmdtext;
  AdoDatasetBookEdit.Open;
  AdoDatasetBookEdit.Active:=true;
  AdoDatasetBookEdit.Filtered:=false;
end;

//获得图书数
function  TDM.CCheckBookNumber(bookid:string):boolean;
var
  Query:TADOQuery;
begin
  Query:=TADOQuery.Create(self);
  Query.Connection:=ADOConnection1;
  Query.SQL.Text:='select booknumber from book_stock where bookid=:id ' +
                  ' and booklast=:last ' ;
  Query.Parameters.ParamByName('id').Value:=bookid;
  Query.Parameters.ParamByName('last').Value:=1;
  query.Open;
  if query.FieldByName('booknumber').AsInteger= 0 then
    result:=true
  else
    result:=false;
  Query.Close;
  query.Free;
end;
//检查ID(通用)
function TDM.CCheckID(sql:string):boolean;
var
  Query:TADOQuery;
begin
   Query:=TADOQuery.Create(nil);
   Query.Connection:=ADOConnection1;
   query.SQL.Text:=sql;
   query.Open;
   if query.RecordCount >0 then
     result:=true
   else
   begin
       result:= false;
   end;
   query.Close;
   query.Free;
end;

//根据书号获得书名
function TDM.GetBookName(bookid:string):string;
var
  Query:TADOQuery;
begin
  Query:=TADOQuery.Create(nil);
  Query.Connection:=dm.ADOConnection1;
  Query.SQL.Text:='select bookname from book_info where bookid=:bookid';
  Query.Parameters.ParamByName('bookid').Value:=bookid;
  Query.Open;
  result:=Query.FieldByName('bookname').AsString;
  Query.Close;
  Query.Free;
end;
function TDM.GetAllBookNum:integer; // 获得库中图书总数
var
  Query:TADOQuery;
begin
   result:=0;
   Query:=TADOQuery.Create(self);
   Query.Connection:=ADOConnection1;
   Query.SQL.Text:='select * from book_stock';
   Query.Open;
   while not Query.Eof do
   begin
       result:=result + Query.FieldByName('bookinnumber').AsInteger -
                                      Query.FieldByName('bookoutnumber').AsInteger;
       Query.Next;
   end;
   Query.Close;
   Query.Free;;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -