try
    ADOQuery1.Active:=True;
    ADOQuery2.Active:=True;
     if ADOQuery1.Active and   (self.ADOQuery1.RecordCount>0) and  ADOQuery2.Active and   (self.ADOQuery2.RecordCount>0)  then
     begin
       for i:=0 to ADOQuery2.Fields.Count-1 do
       begin
         with  self.ClientDataSet1.FieldDefs.AddFieldDef do
         begin
           Name:=adoquery2.Fields[i].FieldName;
           DataType:=adoquery2.Fields[i].DataType;
           Size:=adoquery2.Fields[i].Size;
         end;
       end;
       ClientDataSet1.CreateDataSet;
       ClientDataSet1.Open;
       ClientDataSet1.EmptyDataSet;
       for k:=0 to adoquery2.RecordCount -1 do
       begin
         ClientDataSet1.Append;
         for i:=0 to adoquery2.FieldCount-1 do
         begin
           DBGrid1.Columns[i].Field.Value:=IntToStr(i);
           ClientDataSet1.Fields[i].Value:=adoquery2.Fields[i].Value;
         end;
       end;
       ClientDataSet1.First;
     end;
  finally  end;