📄 unit4.pas.~186~
字号:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls;
type
TForm4 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Query1: TQuery;
GroupBox1: TGroupBox;
Label6: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
ComboBox1: TComboBox;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
GroupBox2: TGroupBox;
Memo1: TMemo;
Button2: TButton;
Button3: TButton;
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject); //实现联合查询
var SqlStr,StrVal,ComStr:string;
flag:integer;
begin
Memo1.Clear;
Memo1.Lines.Add('学号, 姓名 ');
Memo1.Lines.Add('-------------------------------');
flag:=0;
StrVal := trim(Edit1.Text);
if StrVal <> '' then
begin
SqlStr := 'select * from student where (stu_id ='+ ''''+StrVal+ ''')';
flag := 1;
end;
StrVal := trim(Edit2.Text);
if StrVal <> '' then
begin
if flag = 0 then
begin
SqlStr := 'select * from student where (name ='+ ''''+StrVal+ ''')';
flag := 1;
end
else
begin
SqlStr := SqlStr + ' and (name = '+ ''''+StrVal+ ''')';
end;
end;
StrVal := trim(Edit3.Text);
if StrVal <> '' then
begin
if flag = 0 then
begin
SqlStr := 'select * from student where (class ='+ ''''+StrVal+ ''')';
flag := 1;
end
else
begin
SqlStr := SqlStr + ' and (class = '+ ''''+StrVal+ ''')';
end;
end;
StrVal := trim(ComboBox1.Text);
if StrVal = '优秀(90-100)' then ComStr := ' (ave_resu >= 90) and (ave_resu <= 100)';
if StrVal = '良好(80-89)' then ComStr := ' (ave_resu >= 80) and (ave_resu < 90)';
if StrVal = '中等(70-79)' then ComStr := ' (ave_resu >= 70) and (ave_resu < 80)';
if StrVal = '及格(60-69)' then ComStr := ' (ave_resu >= 60) and (ave_resu < 70)';
if StrVal = '不及格(60以下)'then ComStr := ' (ave_resu >= 0) and (ave_resu < 60)';
if StrVal <> '(空值)' then
begin
if flag = 0 then
begin
SqlStr := 'select * from student where '+ ComStr;
flag := 1;
end
else
begin
SqlStr := SqlStr + ' and ' + ComStr;
end;
end;
if flag = 0 then
begin
ShowMessage('请选择查询条件');
exit;
end;
query1.Close;
query1.sql.Text := SqlStr;
query1.open;
flag := 0; //把flag用作计数器
while not query1.Eof do //显示查询结果(包括学号和姓名)
begin
SqlStr := query1.FieldByName('stu_id').AsString;
SqlStr := SqlStr +', '+ query1.FieldByName('name').AsString;
Memo1.Lines.Add(SqlStr);
query1.Next;
flag := flag + 1;
end;
Memo1.Lines.Add('-------------------------------');
Memo1.Lines.Add('一共有 ' + IntToStr(flag) + ' 项符合查询条件');
end;
procedure TForm4.FormCreate(Sender: TObject);
begin
ComboBox1.ItemIndex := 0;
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
query1.Close;
query1.sql.Text := 'select * from student';
query1.open;
end;
procedure TForm4.Button3Click(Sender: TObject);
begin
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -