我在写入第二次调用with ADOQuery1 do时报错,请问是为什么?难道with ADOQuery1 do不能多次使用吗?
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select distinct type from alldata ');
Open;
end;
for i:=0 to ADOQuery1.RecordCount-1 do
begin
ComboBox2.Items.Add(ADOQuery1.fieldbyname('type').AsString);
ADOQuery1.Next;
end;
ComboBox2.ItemIndex:=0;
end; with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select distinct code from alldata where type="P-VIP 210/0.8 E20.7"');
Open;
end;
for i:=0 to ADOQuery1.RecordCount-1 do
begin
ComboBox1.Items.Add(ADOQuery1.fieldbyname('code').AsString);
ADOQuery1.Next;
end;
ComboBox1.ItemIndex:=0;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select distinct type from alldata ');
Open;
end;
for i:=0 to ADOQuery1.RecordCount-1 do
begin
ComboBox2.Items.Add(ADOQuery1.fieldbyname('type').AsString);
ADOQuery1.Next;
end;
ComboBox2.ItemIndex:=0;
end; with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select distinct code from alldata where type="P-VIP 210/0.8 E20.7"');
Open;
end;
for i:=0 to ADOQuery1.RecordCount-1 do
begin
ComboBox1.Items.Add(ADOQuery1.fieldbyname('code').AsString);
ADOQuery1.Next;
end;
ComboBox1.ItemIndex:=0;
end;
var i:integer;
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select distinct type from alldata ');
Open;
end;
ComboBox2.Items.clear;
while Not ADOQuery1.DataSource.DataSet.Eof do
begin
ComboBox2.Items.Add(ADOQuery1.fieldbyname('type').AsString);
ADOQuery1.Next;
end;
ComboBox2.ItemIndex:=0;
end;
procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select distinct code from alldata where type="P-VIP 210/0.8 E20.7"');
Open;
end;
ComboBox2.Items.clear;
ADOQuery1.DataSource.DataSet.First;
while Not ADOQuery1.DataSource.DataSet.Eof do
begin
ComboBox1.Items.Add(ADOQuery1.fieldbyname('code').AsString);
ADOQuery1.Next;
end;
ComboBox1.ItemIndex:=0;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
ComboBox1.Items.Clear;
ComboBox2.Items.Clear;//这两句最好加上,当然如果确信它们为空的话,不加也行 with ADOQuery1 do
begin
Close;
{SQL.Clear;
SQL.Add('select distinct type from alldata ');
这样是不是更简洁?}
SQL.Text:='select distinct type from alldata';
Open;
First; //First要加上,表示从第一项开始
for i:=1 to RecordCount do //这样速度稍快点
begin
ComboBox2.Items.Add(Trim(Fieldbyname('type').AsString)); //加个Trim去掉两边的空格,显的更紧凑
Next;
end;
ComboBox2.ItemIndex:=0; Close;
SQL.Text:='select distinct code from alldata where type="P-VIP 210/0.8 E20.7"';
Open;
First;
for i:=1 to RecordCount do
begin
ComboBox1.Items.Add(Trim(Fieldbyname('code').AsString)); //加个Trim去掉两边的空格,显的更紧凑
Next;
end;
ComboBox1.ItemIndex:=0;
end;
end;