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

📄 unit4.cpp

📁 第一次尝试开发数据库方面的系统
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit4.h"
#include "Unit11.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
Tfrm_bellow *frm_bellow;
//---------------------------------------------------------------------------
__fastcall Tfrm_bellow::Tfrm_bellow(TComponent* Owner)
        : TForm(Owner)
{
  Height=489;
  Width=697;
}
//---------------------------------------------------------------------------

void __fastcall Tfrm_bellow::ToolButton11Click(TObject *Sender)
{
  if(!DBGrid1->SelectedRows->Count)
    ShowMessage("请选择要延期的图书!");
  else
    frm_bellow->post();
}
//---------------------------------------------------------------------------
void __fastcall Tfrm_bellow::Edit1KeyPress(TObject *Sender, char &Key)
{
  if(Key==VK_RETURN)
  {
    gsearch();
  }
}
//---------------------------------------------------------------------------
void __fastcall Tfrm_bellow::gsearch()
{
  AnsiString sql("select * from 借还资料");
  sql+=" where 读者号=\'";
  sql+=Edit1->Text+"\'";
  try
  {
    DM->brQuery->Close();
    DM->brQuery->SQL->Clear();
    DM->brQuery->SQL->Add(sql);
    DM->brQuery->ExecSQL();
    DM->brQuery->Active=true;
  }
  catch(Exception &exception)
  {
    if(MessageBox(NULL,"数据库出现错误!","错误",MB_OK)==IDOK)
    {
      Edit1->Text="";
      Edit1->SetFocus();
    }
  }
  if(DM->brQuery->RecordCount)
  {
    if(DM->brQuery->FieldByName("归还时间")->AsDateTime>TDateTime::CurrentTime())
    {
      for(int i=0;i<DBGrid1->Columns->Count;i++)
        DBGrid1->Columns->Items[i]->Color=clYellow;
    }
    if(DBGrid1->SelectedRows->Count!=0)
    {
      DM->brQuery->Delete();
      DM->brQuery->Post();
    }
  }
}
//-----------------------------------------------------------------------------
void __fastcall Tfrm_bellow::bsearch()
{
    AnsiString sql("select 读者号,图书资料.图书编号 as 编号, 图书名,所属书库,借出时间,归还时间,已借数量 from 图书资料,借阅资料");
    sql+=" where 图书资料.图书编号=\'";
    sql+=this->Edit2->Text+"\' and 读者号=\'";
    sql+=this->Edit1->Text+"\'";
    try
    {
      DM->brQuery->Close();
      DM->brQuery->SQL->Clear();
      DM->brQuery->SQL->Add(sql);
      DM->brQuery->ExecSQL();
      DM->brQuery->Active=true;
    }
    catch(Exception &exception)
    {
      if(MessageBox(NULL,"数据库出现错误!","错误",MB_OK)==IDOK)
      {
        Edit1->Text="";
        Edit1->SetFocus();
      }
    }
    if(DM->tshQuery->RecordCount||DM->dzhQuery->RecordCount)
    {
      if(DM->brQuery->FieldByName("归还时间")->AsDateTime>TDateTime::CurrentDate())
      {
        DBEdit1->Text=DateTimeToStr(DM->brQuery->FieldByName("归还时间")->AsDateTime-TDateTime::CurrentDate());
        for(int i=0;i<DBGrid1->Columns->Count;i++)
          DBGrid1->Columns->Items[i]->Color=clYellow;
      }
      else
      {
        DM->brQuery->Insert();
        //DM->tshQuery->Insert();
        DM->brQuery->FieldByName("读者号")->AsString=Edit1->Text;
        DM->brQuery->FieldByName("编号")->AsString=Edit2->Text;
        DM->brQuery->FieldByName("图书名")->AsString=DM->tshQuery->FieldByName("图书名")->AsString;
        DM->brQuery->FieldByName("所属书库")->AsString=DM->tshQuery->FieldByName("所属书库")->AsString;
        DM->brQuery->FieldByName("借出时间")->AsString=DateTimeToStr(TDateTime::CurrentDate());
        DM->brQuery->FieldByName("归还时间")->AsDateTime=TDateTime::CurrentDate()+30;
        DM->brQuery->FieldByName("已借数量")->AsInteger+=1;
        DM->brQuery->Post();

      }

    }

}
//-------------------------------------------------------------------------------
void __fastcall Tfrm_bellow::post()
{
  if(Edit1->Text.IsEmpty())
  {
    ShowMessage("请输入读者号!");
  }
  else
  {
    AnsiString sql;
    sql="select * from 借还资料 where 读者号=\'";
    sql+=Edit1->Text+"\'";
    DM->dzhQuery->Close();
    DM->dzhQuery->SQL->Clear();
    DM->dzhQuery->SQL->Add(sql);
    DM->dzhQuery->ExecSQL();
    DM->dzhQuery->Open();
    if(DM->dzhQuery->RecordCount)
    {
      if(DBGrid1->SelectedRows->Count!=0)
      {
        DM->brQuery->Edit();
        DM->brQuery->FieldByName("归还时间")->AsDateTime=DM->brQuery->FieldByName("借出时间")->AsDateTime+60;
        DM->brQuery->Post();
      }
    }
    else
    {
      ShowMessage("对不起,没有这位读者的信息!");
    }
  }
}


//--------------------------------------------------------------------------------

//-------------------------------------------------------------------------------

void __fastcall Tfrm_bellow::FormClose(TObject *Sender,
      TCloseAction &Action)
{
  Action=caFree;
}
//---------------------------------------------------------------------------

void __fastcall Tfrm_bellow::ToolButton12Click(TObject *Sender)
{
  if(Edit1->Text.IsEmpty()||Edit2->Text.IsEmpty())
  {
    ShowMessage("读者号和图书编号不能为空!");
  }
  else
  {
    bsearch();
  }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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