
代碼:program Project1;
uses
Forms,
SysUtils,
Unit1 in 'Unit1.pas' {Welcome},
Unit2 in 'Unit2.pas' {Login},
Unit3 in 'Unit3.pas' {st_Query},
Unit4 in 'Unit4.pas' {Main},
Unit5 in 'Unit5.pas' {Input},//錯誤時此處線束為藍色
Unit7 in 'Unit7.pas' {Revise};
{$R *.res}
begin
Application.Initialize;
Welcome := TWelcome.Create(Application); //啟動屏創建
Welcome.Show;
Welcome.Update;
Application.CreateForm(TMain, Main);
Application.CreateForm(TLogin, Login);
Application.CreateForm(Tst_Query, st_Query);
Application.CreateForm(TInput, Input);
Application.CreateForm(TRevise, Revise);
Welcome.ProgressBar1.Position := 10;
Sleep(100);
Welcome.ProgressBar1.Position := 20;
Sleep(100);
Welcome.ProgressBar1.Position := 30;
Sleep(100);
Welcome.ProgressBar1.Position := 40;
Sleep(100);
Welcome.ProgressBar1.Position := 50;
Sleep(100);
Welcome.ProgressBar1.Position := 60;
Sleep(100);
Welcome.ProgressBar1.Position := 70;
Sleep(100);
Welcome.ProgressBar1.Position := 80;
Sleep(100);
Welcome.ProgressBar1.Position := 90;
Sleep(100);
Welcome.ProgressBar1.Position := 100;
Sleep(100);
Welcome.Close; //關閉啟動屏表單
Welcome.Free; //釋放啟動屏表單所占的記憶體
Application.Run;
end.
unit Unit5;//可此處無borr_num
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, jpeg, ExtCtrls, DBCtrls;
type
TMyNavgator = class(TDBNavigator);
TInput = class(TForm)
GroupBox1: TGroupBox;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
DBGrid1: TDBGrid;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
Button1: TButton;
Button2: TButton;
Edit4: TEdit;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
CheckBox4: TCheckBox;
CheckBox5: TCheckBox;
DBNavigator1: TDBNavigator;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Input: TInput;
s:string;
implementation
uses unit4;
{$R *.dfm}
procedure TInput.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
if CheckBox5.Checked then
begin
CheckBox1.Checked:=true;
CheckBox2.Checked:=true;
CheckBox3.Checked:=true;
CheckBox4.Checked:=true;
end;
s:='';
if CheckBox1.Checked then s:=s+'st_ID,';
if CheckBox2.Checked then s:=s+'book_ID,';
if CheckBox3.Checked then s:=s+'borr_date,';
if CheckBox4.Checked then s:=s+'ret_date,';
s:=copy(s,1,length(s)-1);
ADOQuery1.SQL.Add('Select '+s+' '+' From borrow where 1=1 ');
if CheckBox1.Checked then
begin
ADOQuery1.SQL.Add('and st_ID like :sst_ID');
ADOQuery1.Parameters.ParamByName('sst_ID').Value := '%'+Edit1.text+'%';
end;
if CheckBox2.Checked then
begin
ADOQuery1.SQL.Add('and book_ID like :sbook_ID');
ADOQuery1.Parameters.ParamByName('sbook_ID').Value := '%'+Edit2.Text+'%';
end;
if CheckBox3.Checked then
begin
if Edit3.Text<>'' then
begin
ADOQuery1.SQL.Add('and borr_date like :sborr_date');
ADOQuery1.Parameters.ParamByName('sborr_date').Value :='%'+Edit3.Text+'%';
end;
end;
if CheckBox4.Checked then
begin
if Edit4.Text<>'' then
begin
ADOQuery1.SQL.Add('and ret_date like :sret_date');
ADOQuery1.Parameters.ParamByName('sret_date').Value :='%'+Edit4.Text+'%';
end;
end;
ADOQuery1.Open;
if ADOQuery1.RecordCount = 0 then
begin
MessageBox(Handle,'該記錄不存在','提示',MB_OK+MB_ICONWARNING);
exit;
end;
end;
procedure TInput.FormCreate(Sender: TObject);
begin
TMyNavgator(DBNavigator1).Buttons[nbFirst].Caption:= '首條 ';
TMyNavgator(DBNavigator1).Buttons[nbPrior].Caption:= '上一條 ';
TMyNavgator(DBNavigator1).Buttons[nbNext].Caption:= '下一條 ';
TMyNavgator(DBNavigator1).Buttons[nbLast].Caption:= '末條 ';
TMyNavgator(DBNavigator1).Buttons[nbInsert].Caption:= '添加 ';
TMyNavgator(DBNavigator1).Buttons[nbDelete].Caption:= '洗掉 ';
TMyNavgator(DBNavigator1).Buttons[nbEdit].Caption:= '修改 ';
TMyNavgator(DBNavigator1).Buttons[nbPost].Caption:= '提交 ';
TMyNavgator(DBNavigator1).Buttons[nbCancel].Caption:= '撤銷 ';
TMyNavgator(DBNavigator1).Buttons[nbRefresh].Caption:= '重繪 ';
end;
procedure TInput.Button3Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * From borrow where ret_date is null');
ADOQuery1.Open;
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, jpeg, ExtCtrls;
type
Tst_Query = class(TForm)
GroupBox1: TGroupBox;
ComboBox1: TComboBox;
Edit1: TEdit;
DBGrid1: TDBGrid;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
st_Query: Tst_Query;
implementation
uses unit4;
{$R *.dfm}
procedure Tst_Query.FormCreate(Sender: TObject);
begin
combobox1.items.Add('書名');
combobox1.items.Add('作者');
combobox1.items.Add('出版社');
combobox1.items.Add('價格');
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * From borrow order by borr_num desc');
ADOQuery1.Open;
end;
procedure Tst_Query.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
if combobox1.Text='書名' then
begin
if Edit1.Text = '' then
begin
MessageBox(Handle,'書名未輸入','錯誤',MB_OK+MB_ICONERROR);
Edit1.SetFocus;
exit;
end
else
begin
ADOQuery1.SQL.Add('Select * From book Where book_name like :sbook_name');
ADOQuery1.Parameters.ParamByName('sbook_name').Value := '%'+Edit1.text+'%';
end;
end;
if combobox1.Text='作者' then
begin
if Edit1.Text = '' then
begin
MessageBox(Handle,'作者未輸入','錯誤',MB_OK+MB_ICONERROR);
Edit1.SetFocus;
exit;
end
else
begin
ADOQuery1.SQL.Add('Select s.book_ID,s.book_name,s.borr_num From book as s inner join Tbook as r ');
ADOQuery1.SQL.Add('on s.book_name=r.book_name Where r.author like :sauthor');
ADOQuery1.Parameters.ParamByName('sauthor').Value := '%'+Edit1.Text+'%';
end;
end;
if combobox1.Text='出版社' then
begin
if Edit1.Text = '' then
begin
MessageBox(Handle,'出版社未輸入','錯誤',MB_OK+MB_ICONERROR);
Edit1.SetFocus;
exit;
end
else
begin
ADOQuery1.SQL.Add('Select s.book_ID,s.book_name,s.borr_num From book as s inner join Tbook as r ');
ADOQuery1.SQL.Add('on s.book_name=r.book_name Where r.press like :spress');
ADOQuery1.Parameters.ParamByName('spress').Value :='%'+Edit1.Text+'%';
end;
end;
if combobox1.Text='價格' then
begin
if Edit1.Text = '' then
begin
MessageBox(Handle,'價格未輸入','錯誤',MB_OK+MB_ICONERROR);
Edit1.SetFocus;
exit;
end
else
begin
ADOQuery1.SQL.Add('Select s.book_ID,s.book_name,s.borr_num From book as s inner join Tbook as r ');
ADOQuery1.SQL.Add('on s.book_name=r.book_name Where r.price < :sprice');
ADOQuery1.Parameters.ParamByName('sprice').Value :=StrToInt(Edit1.Text);
end;
end;
ADOQuery1.Open;
if ADOQuery1.RecordCount = 0 then
begin
MessageBox(Handle,'此書不存在','提示',MB_OK+MB_ICONWARNING);
exit;
end;
end;
procedure Tst_Query.Button2Click(Sender: TObject);
begin
st_Query.close;
end;
procedure Tst_Query.Button3Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * From book order by borr_num desc');
ADOQuery1.Open;
end;
procedure Tst_Query.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = 13 then
button1.SetFocus;
end;
end.
uj5u.com熱心網友回復:
提示如此明顯,列名無效,要么沒這一列,要么這一列沒select轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/67824.html
標籤:語言基礎/算法/系統設計
下一篇:DES解密
