http://expert.csdn.net/Expert/topic/1426/1426788.xml?temp=.5202906

解决方案 »

  1.   

    不能这样吧:
    ADO=TADOUQuery(DBGrid2->DataSource->DataSet)你可以将DBGrid2->DataSource->DataSet的对应属性付值给ADO呀.
      

  2.   

    用Clone函数,具体可以看看BCB系统帮助
      

  3.   

    在 Delphi 5 里,var
      ADO: TADOQuery;
    begin
      ADO := TADOQuery(DBGrid1.DataSource.DataSet);
    end; 可以通过编译。每个 Class 都是一个指针,你用任何一个 Class 强制转换都不会出现编译错误,只会在运行时出错。ADO := TADOQuery(DBGrid1);这样写也不会编译出错。因为我没有BCB,不能验证你的问题。我一直用Delphi 开发 Database 方面的程序,经常会用到这类转换,都没问题。相对来说,我建议你用三层的方式来开发数据库应用程序。TClientDataSet真的很好用,可以不管你用的是BDE还是ADO