一个应该不算太难的sql查询问题,急着用!(100分)

  • 主题发起人 主题发起人 老Q
  • 开始时间 开始时间

老Q

Unregistered / Unconfirmed
GUEST, unregistred user!
窗体上有两个下拉列表框combobox1 和 combobox2,
将数据库的某一个字段的所有记录无重复地加到第一个combobox控件中(己解决),
然后点击combobox1,选择其中一项后,则从数据库同一个表中检索出所有的
字段1等于combobox1所选项的字段2,并将检索结果扫描进combobox2.
 
combobox1中显示的是从字段1中查询出来的结果吗?combobox2中要显示符合条件的字段2吗?
procedure TForm1.ComboBox1Change(Sender: TObject);
var
x:string;
begin
query1.SQL.Clear;
query1.SQL.Add('select * from table1 where 字段2=:x');
query1.ParamByName('x').AsString:=combobox1.Text;
query1.Prepare;
query1.Open;
while not query1.Eof do
combobox2.Items.Add(query1.fieldbyname('字段2').AsString);
query1.Next;
begin
end;
end;
 
with query do begin
close; sql.clear;
sql.add('select field2 from tablename where field1=:');
params[0].asstring:=combobox1.text;
try open except end;
while not eof do begin
combobox2.items.add(fields[0].asstring); next
end;
close
end;
 
twos又来了,欢迎欢迎,多谢关注.
 
我也来了呀!
 
jsongy对不起了,也非常欢迎.
 
奇怪了,这是我以前调通的代码,可是现在就是不行,不知是什么原因:
procedure TForm1.ComboBox1Change(Sender: TObject);
var
i:integer;
s:string;
begin
with query1 do
begin
close;
sql.clear;
s:=format('select distinct Author from books where books."name"="%s"',[combobox1.text]);
sql.add(s);
try
open;
except
end;
while not eof do
begin
combobox2.items.add(fields[0].asstring);
next;
end;
end;
end;
 
很长时间不用delphi做C/S结构的应用了,难道...唉,都忘光了?
 
jsongy 的代码还是有一点问题,不过多谢关注.
以后还有问题请教,jsongy和twos两位常在线吗,一定给大家散分.
 
多人接受答案了。
 
后退
顶部