能否对DataSet中的某个表进行查询操作
DataSet的查询结果中有一个表的数据,现需要对该数据集中的数据进行分组汇总操作,请问能用select方法进行查询操作吗,还是有其他的什么方法,并指定返回字段?...
DataSet的查询结果中有一个表的数据,现需要对该数据集中的数据进行分组汇总操作,请问能用select方法进行查询操作吗,还是有其他的什么方法,并指定返回字段?
展开
2个回答
展开全部
dateset组件同时具有Query和Table组件的功能,select是SQL语句的一个子句,它不能称为方法。在DELPHI中,方法一般指过程与函数。DataSet组件在DELPHI的自带控件中有两种,一种是BDE组件,另一种是ADO组件,BDE的dateset组件用起来比较麻烦,因为它还有一个“婆婆”迈达思,用它写的软件,安装到目标机时,必须分发迈达思,而用ADO组件做软件,完全是一种绿色软件,根本不用安装,直接将其复制到目标机的任何一个盘上就可以正常运行(当然要进行一个设置)。对于单机软件我只用ADO组件ADOdateset组件,ADOdateset组件同时具有ADOQuery和ADOTable组件的功能,它可以执行任何形式的SQL语句,下面fr_sjmk.TB_yhlx_js就是一个ADOdateset组件:
fr_sjmk.TB_yhlx_js.Close;
fr_sjmk.TB_yhlx_js.CommandText:='';
fr_sjmk.TB_yhlx_js.CommandText:='select DISTINCT yhlx from yhlx_sj ';
fr_sjmk.TB_yhlx_js.Open;
if fr_sjmk.TB_yhlx_js.RecordCount >0 then
begin
combobox4.Items.Clear;
for i:=0 to fr_sjmk.TB_yhlx_js.RecordCount-1 do
begin
combobox4.Items.Add(fr_sjmk.TB_yhlx_js.FieldValues['yhlx']);
fr_sjmk.TB_yhlx_js.Next;
end;
combobox4.ItemIndex:=0;
end;
fr_sjmk.TB_yhlx_js.Close;
该ADOdateset组件执行SQL语句'select DISTINCT yhlx from yhlx_sj ';//从yhlx_sj表中读取yhlx字段中的数据,并滤掉该字段中的重复项。
然后用 combobox4.Items.Add(fr_sjmk.TB_yhlx_js.FieldValues['yhlx']);
语句把读取到的字段值写到Combobox组件的项目中,成为Combobox组件的下拉选项。
使ADOdatese返回字段值有很多方法,通常使用的有两种方法:
假如s1是一个变量,则有,一种方法:s1:=fr_sjmk.TB_yhlx_js.FieldValues['yhlx'];
另一种方法:s1:= fr_sjmk.TB_yhlx_sjbj.FieldByName('联系电话').Value也是对的。
同样,也可以通过这种办法把数据保存到数据库中:比如fr_sjmk.TB_yhlx_sjbj.FieldByName('联系电话').Value:=combobox6.Text;
fr_sjmk.TB_yhlx_js.Close;
fr_sjmk.TB_yhlx_js.CommandText:='';
fr_sjmk.TB_yhlx_js.CommandText:='select DISTINCT yhlx from yhlx_sj ';
fr_sjmk.TB_yhlx_js.Open;
if fr_sjmk.TB_yhlx_js.RecordCount >0 then
begin
combobox4.Items.Clear;
for i:=0 to fr_sjmk.TB_yhlx_js.RecordCount-1 do
begin
combobox4.Items.Add(fr_sjmk.TB_yhlx_js.FieldValues['yhlx']);
fr_sjmk.TB_yhlx_js.Next;
end;
combobox4.ItemIndex:=0;
end;
fr_sjmk.TB_yhlx_js.Close;
该ADOdateset组件执行SQL语句'select DISTINCT yhlx from yhlx_sj ';//从yhlx_sj表中读取yhlx字段中的数据,并滤掉该字段中的重复项。
然后用 combobox4.Items.Add(fr_sjmk.TB_yhlx_js.FieldValues['yhlx']);
语句把读取到的字段值写到Combobox组件的项目中,成为Combobox组件的下拉选项。
使ADOdatese返回字段值有很多方法,通常使用的有两种方法:
假如s1是一个变量,则有,一种方法:s1:=fr_sjmk.TB_yhlx_js.FieldValues['yhlx'];
另一种方法:s1:= fr_sjmk.TB_yhlx_sjbj.FieldByName('联系电话').Value也是对的。
同样,也可以通过这种办法把数据保存到数据库中:比如fr_sjmk.TB_yhlx_sjbj.FieldByName('联系电话').Value:=combobox6.Text;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询