我用ADOQuery查询到数据,怎么赋值给Clientdataset,

解决方案 »

  1.   


    我用clientdataset连接了DataSetProvider1。
    这样去赋值DataSetProvider1.DataSet := ADOQuery1;。提示missing dataset property
      

  2.   

    1、DataSetProvider1,它是服务器数据集控件。不能这样操作。
    2、ClientDataSet读取远程的数据,这样它就有了属性。
    3、向ClientDataSet,通过
    Append;
    FieldByName('XX').asString:='';
    。。
    Post; 
    赋值
      

  3.   

    1.adoquery的数据库连接设置对,sql语句写进去
    2.datasetprovider的dataset冒号等于 adoquery
    3.clientdataset的providername:=datasetprovider弄个dbgrid和datasource显示出来。写法没问题可能是 数据库连接没设对,或者sql语句没写。
      

  4.   

    1.创建TADOQuery连接数据库。
    2.创建TDataSetProvider连接TADOQuery,DataSet属性为ADOQuery。
    3.TADOQuery查询出数据后,将TDataSetProvider的Data属性赋值给TClientDataSet的Data属性即可
    例:procedure Foo;
    var
      q: TADOQuery;
      p: TDataSetProvider;
      c: TClientDataSet;
    begin
      q := TADOQuery.Create;
      p := TDataSetProvider.Create;
      p.DataSet := q;
      c := TClientDataSet.Create;
      q.ConnectionString := 'XXX';
      q.SQL.Text := 'SELECT * FROM t1';
      q.Open;
      c.Data := p.Data;
    end;