最好在取记录时把相同的取了 select name from table group by name如果取不了, 只能自己作循环了。 combobox1.items.clear; query1.first; while not query1.eof do begin if combobox1.items.indexof(query1.fieldbyname('name').asstring)<>-1 then combobox1.items.add(query1.fieldbyname('name').asstring); query1.next; end;
同意falaly(风雨)的说法,这是一个符合查询 select distinct fldl from (select * from tabl)
你得描述清楚你的需求, 什么叫"在取出的数据集中能用SQL语句吗"
补充: 比如数据己经放在TADoDataset中了
procedure TForm19.button1onclick(Sender: TObject); var pre:string; begin
with form1.adoquery1 do begin close; active:=false; sql.clear; sql.add(' select '+' fieldname1 '); //fieldname1用你要的字段名 sql.add(' from "'+form1.adotable1.TableName+'"' ); sql.add(' order by '+' fieldname1 ');//fieldname1用你要的字段名 execsql; active:=true; first; pre:=fields[0].AsString; combobox1.Items.Clear; while not Eof do begin next; if not (fields[0].AsString =pre) then begin combobox1.Items.add(fields[0].AsString); pre:=fields[0].asstring; end; end; end; 刚试过,没问题,给分吧
select name from table group by name如果取不了,
只能自己作循环了。
combobox1.items.clear;
query1.first;
while not query1.eof do
begin
if combobox1.items.indexof(query1.fieldbyname('name').asstring)<>-1 then combobox1.items.add(query1.fieldbyname('name').asstring);
query1.next;
end;
( 已取出的数据集 ) aa
netlib(河外孤星):你的这个循环可行吗?
falaly(风雨):在取出的数据集中能用SQL语句吗???
select distinct fldl from (select * from tabl)
什么叫"在取出的数据集中能用SQL语句吗"
比如数据己经放在TADoDataset中了
var pre:string;
begin
with form1.adoquery1 do
begin
close;
active:=false;
sql.clear;
sql.add(' select '+' fieldname1 '); //fieldname1用你要的字段名
sql.add(' from "'+form1.adotable1.TableName+'"' );
sql.add(' order by '+' fieldname1 ');//fieldname1用你要的字段名
execsql;
active:=true;
first;
pre:=fields[0].AsString;
combobox1.Items.Clear;
while not Eof do
begin
next;
if not (fields[0].AsString =pre) then
begin
combobox1.Items.add(fields[0].AsString);
pre:=fields[0].asstring;
end;
end;
end;
刚试过,没问题,给分吧
2、在查询中做循环,只要不等就添加,否则next!