我的代码如下:
procedure Tmainfrm.BitBtn1Click(Sender: TObject);
var adoquery1 : TADOQuery;
    ado_Conn  : TADOConnection;
    strSQL    : string;
begin
ado_Conn:=TAdoConnection.Create(application);      ado_Conn.ConnectionString :='Provider=SQLOLEDB.1;Password=checker;Persist Security Info=True;User ID=checker;Initial Catalog=i3_rec;Data Source=114-SERVER';
       ado_Conn.LoginPrompt :=False ;
       ado_Conn.ConnectionTimeout :=5;
       ado_Conn.Open ;
    adoquery1:=TADOQuery.Create(self);
    adoquery1.Connection := ado_Conn;
   try
        strSQL := 'SELECT aa,bb FROM eic_recorder.I3_RECORDINGDATA';
        adoquery1.SQL.Clear ;
        adoquery1.SQL.Add(strSQL);
        adoquery1.Prepared ;
        adoquery1.ExecSQL ;
//***********************
//***********************
        application.MessageBox('ok','ok',mb_ok);
        except on E:Exception do
          begin
              application.MessageBox('sorry','sorry',mb_ok);
          end;
   end;
请问:我执行命令成功了,现在要把返回的结果集(aa,bb)写入控件listview1中, 应在//*****下怎么写代码啊?请指教!

解决方案 »

  1.   

    从TQuery里面可以获得你所有的数据,
    大概这样写(可能有小错误,你参照一下吧,我也是临时一写,没有调试过,呵呵)procedure TForm1.Button2Click(Sender: TObject);
    var
      I: Integer;
      NewColumn: TListColumn;
      ListItem: TListItem;
      ListView: TListView;
    begin
      with ListView1 do
      begin
        NewColumn := Columns.Add;
        NewColumn.Caption := 'aa';
        NewColumn := Columns.Add;
        NewColumn.Caption := 'bb';
        adoquery1.First;
        while not adoquery1.EOF do
        begin
          ListItem := Items.Add;
          ListItem.Caption := adoquery1.FieldByName('aa');
          ListItem.SubItems.Add(adoquery1.FieldByName('bb'));
        end;
      end;
    end;
      

  2.   

    呵呵,刚贴完就发现bug了,while循环忘写Next了。
      

  3.   

    下能用adoquery1.ExecSQL ;
    要用adoquery1.Open;
      

  4.   

    listitems.add(adoquery.fieldbyname(‘aaa’).asstring;