我现在做了一个数据库应用程序,以前我做的都是基于FORM的数据库程序,直接在窗体中拖入ADO控件就行了。可是现在在做一个不是基于的FORM的程序,我要动态创建ADO,可是我不知道该怎么做。我已经写了下列代码:
 AdoConn := TAdoConnection.Create(self);
   AdoConnectionstr := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;'+ 'Data Source='+GetCurrentDir+'\DBPhone.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";'+'Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;'+'Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale on Compact=False;'+'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
   AdoConn.ConnectionString :=  AdoConnectionStr;
   adoconn.Close;
   adoconn.LoginPrompt := False;
   AdoConn.Open;   AdoQuery := TadoQuery.Create(self);
   AdoQuery.Connection := Adoconn;   AdoQuery.SQL.Add('select *from Totaluser') ;
   AdoQuery.Open;
   //showmessage(AdoQuery.Fields.Fields[0]);
   AdodataSource := TDataSource.Create(self);
   AdoDataSource.DataSet := AdoQuery;
   //DbGrid1.Fields[0].FieldName := AdoQuery.FieldDefList.FieldDefs[0].Name;   DbGrid1.DataSource := AdoDataSource;我想把totalcall中的数据取得,然后在dbgrid1中显示了来,请问我该怎么做呀?要不要动态初建Fields呀,哪位高手能给我写一段代码参考一下,非常感谢!

解决方案 »

  1.   

    ADOQuery := TADOQuery.Create(nil);
    ADOQuery := TADOConnection;//TADOConnection 你也可以自己生成或直接用控件//do what you want ADOQuery.Close;
    ADOQuery.Free;
      

  2.   

    jzpcom(jzp) 写的很正确,就是这样,
    procedure xxx;
    var adoquery:Tadoquery;
    begin
    ADOQuery := TADOQuery.Create(nil);
    ADOQuery := TADOConnection;//TADOConnection 你也可以自己生成或直接用控件//do what you want ADOQuery.Close;
    ADOQuery.Free;
    end;
    还有要记得把ADODB加入到uses中
      

  3.   

    with DBGrid1.columns.add
       begin
          fieldname:='field1';
          title.caption:='titlename';
       end;
    后面如有需要再继续写上述代码!
      

  4.   

    THEADOQ:=TADOQuery.Create(nil);
      THEADOQ.Connection:=THEONE;{THEONE是一个connection}
      Close;
      SQL.Clear;
      SQL.Add('select * from ...');
      Open;
      

  5.   

    这句AdoQuery.SQL.Add('select *from Totaluser') ;
    前再加上Close;
      SQL.Clear;
    还有释放
    不然占内存
      

  6.   

    你没有释放adoquery
      还有你的adoquery.close;
             adoquery.sql.clear;
      

  7.   

    我是说怎么样创建fields,然后和dbgrid的列邦定呀