Project DYNQUERY
Project Structure
DYNQUERY.DPR
program DynQuery;
uses
Forms,
DynQForm in 'DynQForm.pas' {Form1};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
DYNQFORM.PAS
unit DynQForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids, DBGrids, Db, DBTables;
type
TForm1 = class(TForm)
Query1: TQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton4Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Query1.Open;
end;
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add ('select * from Country');
Query1.Open;
end;
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add ('select * from Country');
Query1.Sql.Add ('where Continent = "' +
(Sender as TRadioButton).Caption + '"');
Query1.Open;
end;
procedure TForm1.RadioButton4Click(Sender: TObject);
begin
Query1.Close;
if (Edit1.Text <> '') then
begin
Query1.Sql.Clear;
Query1.Sql.Add ('select * from Country');
Query1.Sql.Add ('where ' + Edit1.Text);
end;
try
Query1.Open;
except
on EDatabaseError do
ShowMessage ('Invalid condition:'#13 +
Edit1.Text);
end;
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
RadioButton4.Enabled := Edit1.Text <> '';
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
if RadioButton4.Checked then
RadioButton4Click (Self)
else
RadioButton4.Checked := True;
Key := #0;
end;
end;
end.
DYNQFORM.DFM
object Form1: TForm1
Left = 192
Top = 107
Width = 534
Height = 305
Caption = 'DynQuery'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object DBGrid1: TDBGrid
Left = 0
Top = 0
Width = 526
Height = 173
Align = alClient
DataSource = DataSource1
TabOrder = 0
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -11
TitleFont.Name = 'MS Sans Serif'
TitleFont.Style = []
end
object GroupBox1: TGroupBox
Left = 0
Top = 173
Width = 526
Height = 105
Align = alBottom
Caption = 'Selection'
TabOrder = 1
object RadioButton1: TRadioButton
Left = 16
Top = 16
Width = 113
Height = 17
Caption = 'All'
Checked = True
TabOrder = 0
TabStop = True
OnClick = RadioButton1Click
end
object RadioButton2: TRadioButton
Left = 16
Top = 35
Width = 113
Height = 17
Caption = 'North America'
TabOrder = 1
OnClick = RadioButton2Click
end
object RadioButton3: TRadioButton
Left = 16
Top = 53
Width = 137
Height = 17
Caption = 'South America'
TabOrder = 2
OnClick = RadioButton2Click
end
object RadioButton4: TRadioButton
Left = 16
Top = 72
Width = 81
Height = 17
Caption = 'Custom:'
Enabled = False
TabOrder = 3
OnClick = RadioButton4Click
end
object Edit1: TEdit
Left = 104
Top = 72
Width = 193
Height = 21
TabOrder = 4
OnChange = Edit1Change
OnKeyPress = Edit1KeyPress
end
end
object Query1: TQuery
DatabaseName = 'DBDEMOS'
SQL.Strings = (
'select * from Country')
Left = 32
Top = 80
end
object DataSource1: TDataSource
DataSet = Query1
Left = 32
Top = 32
end
end
|