Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)aaa
published in(发表于) 2014/7/19 0:09:42
Delphi其他查询

Delphi其他查询

其他查询

1.多表合并查询

在对多表进行合并查询时,各表间必须有一个字段信息完全相同以建立联系,在查询时为各表建立别名,如果要显示某表的字段信息,必须在字段的前面加上“相对应的表名.”。在对多表进行合并查询时,用逻辑运算符AND连接查询条件。

下面对“tb_Mark”表进行查询,并将查询结果与“tb_Stu”表的相应信息合并成一个新表显示出来。

操作步骤如下:

(1)运行Delphi,在窗体中添加TADOConnection、TADOQuery、TDataSource、TButton、TComboBox和TDBGrid等组件。

(2)主要程序代码如下:

with ADOQuery1 do

begin

close;

SQL.Clear;

if ComboBox1.Text='学生编号' then

SQL.Add('select b.学生编号,b.学生姓名,b.家庭住址,a.高数,a.外语 from tb_Mark a,tb_Stu b where a.学生编号=b.学生编号 and '+'a.'+ComboBox1.Text+ComboBox2.Text+Edit1.Text)

else

SQL.Add('select b.学生编号,b.学生姓名,b.家庭住址,a.高数,a.外语 from tb_Mark a,tb_Stu b where a.学生编号=b.学生编号 and '+'a.'+ComboBox1.Text+ComboBox2.Text+''''+Edit1.Text+'''');

open;

end;

2.NOT与谓词进行组合条件的查询

逻辑运算符NOT是对查询条件进行反向查询,必须在对其查询条件完成后,再用NOT对查询信息进行反向显示,通常用括号将查询条件括起来,然后在前面加上逻辑运算符NOT。

下面用逻辑运算符NOT对数据进行查询。

操作步骤如下:

(1)运行Delphi,在窗体中添加TADOConnection、TADOQuery、TDataSource、TButton、TComboBox和TDBGrid等组件。

(2)主要程序代码如下:

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

with ADOQuery1 do

begin

close;

SQL.Clear;

SQL.Add('select * from MR_Student where not ('+ComboBox1.Text+'<='+inttostr(strtoint(Trim(edit1.Text))-1)+')');

open;

end;

end;

3.复杂查询

复杂查询是利用逻辑运算符(NOT、AND、OR)将多种查询方试相结合的方法查询,这种查询方试可以缩小查询数据的范围,提高查询效率。在使用这类查询时,应注意逻辑运算符的优先级。它们的优先顺序从高到低分别为NOT、AND、OR。

下面用逻辑运算符AND将多个条件连接在一起对多表数据进行查询。

操作步骤如下:

(1)运行Delphi,在窗体中添加TADOConnection、TADOQuery、TDataSource、Tbutton、TComboBox和TDBGrid等组件。

(2)主要程序代码如下:

with ADOQuery1 do

begin

close;

SQL.Clear;

SQL.Add('select b.学生编号,b.学生姓名,b.性别,b.家庭住址,a.高数,a.外语,a.计算机文化基础,a.马经,a.数据库管理,a.数据结构,a.软件工程 from tb_Mark a,tb_Stu b where (a.学生编号=b.学生编号) and ('+'a.'+ComboBox1.Text+ComboBox2. Text+Edit1.Text+')and(b.出生年月 BETWEEN '+QuotedStr(DatetoStr(DateTimePicker1.Date))+' and '+ QuotedStr(DatetoStr (DateTimePicker2.Date))+')'+Str );

showmessage(SQL.Text);

open;

end;




If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759