📄 bookqueryunit.pas
字号:
unit BookQueryUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, Buttons;
type
TfrmBookQuery = class(TForm)
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
GroupBox2: TGroupBox;
Label1: TLabel;
Edit1: TEdit;
DBGrid1: TDBGrid;
GroupBox3: TGroupBox;
Label2: TLabel;
Label3: TLabel;
Edit2: TEdit;
Edit3: TEdit;
DataSource1: TDataSource;
procedure FormCreate(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmBookQuery: TfrmBookQuery;
BookQueryDS:TADODataSet;
implementation
uses DataModuleUnit,Math;
{$R *.dfm}
procedure TfrmBookQuery.FormCreate(Sender: TObject);
begin
//初始化设置
BookQueryDS:=TADODataSet.Create(nil);
with bookQueryDS do
begin
Connection:=frmDataModule.Connection;
CommandType:=cmdText;
end;
DataSource1.DataSet:=BookQueryDS;
DbGrid1.DataSource:=DataSource1;
end;
procedure TfrmBookQuery.SpeedButton1Click(Sender: TObject);
var
money:real;
sqlstr1,sqlstr2:string;
begin
if edit1.Text<>'' then
begin
with BookQueryDS do
begin
close;
Parameters.Clear;
// Parameters.CreateParameter('@v',ftstring,pdinput,50,Edit1.Text);
sqlstr1:='select * from books where ';
if radioButton1.Checked then //按书名查询
begin
begin
Parameters.CreateParameter('@v',ftstring,pdinput,50,Edit1.Text);
sqlstr2:='bookname';
end;
end
else
if radioButton2.Checked then //按出版社查询
begin
Parameters.CreateParameter('@v',ftstring,pdinput,50,Edit1.Text);
sqlstr2:='press'
end
else
if radioButton3.Checked then //按作者查询
begin
Parameters.CreateParameter('@v',ftstring,pdinput,8,Edit1.Text);
sqlstr2:='author'
end
else //按订书单位查询
begin
Parameters.CreateParameter('@v',ftstring,pdinput,20,Edit1.Text);
sqlstr2:='orderDepartmentName';
end;
CommandText:='select * from books where '+sqlstr2+'=:V';
//CommandText:=sqlstr1+sqlstr2+'='+''''+Edit1.Text+'''';
//showmessage(Parameters[0].Value);
//CommandText:=sqlstr1+sqlstr2+'=:v';
//showmessage(CommandText);
open;
if RecordCount>0 then
begin
money:=FieldByName('BookAmount').AsInteger*FieldByName('Price').AsFloat;
edit2.Text:=inttostr(RecordCount);
edit3.Text:=FloatTostr(RoundTo(money,-2));//四舍五入
{
Unit Math
Expression Value
RoundTo(1234567, 3) 1234000
RoundTo(1.234, -2) 1.23
RoundTo(1.235, -2) 1.24
RoundTo(1.245, -2) 1.24
Note: The behavior of RoundTo can be affected by the Set8087CW procedure or SetRoundMode function.
}
end;
end;
end
else
begin
Application.MessageBox('查询值不能为空格或为空!','出错提示',mb_ok);
abort;
end;
end;
procedure TfrmBookQuery.SpeedButton2Click(Sender: TObject);
begin
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -