我想在程序中将TDBGrid控件动态绑定Ado.RecordSet数据集, 但是总是不成功, 请高手指点:
var 
    RecordSet: OleVariant;
...
RecordSet:=CreateOleObject('Adodb.RecordSet');
DBGrid1.DataSource:=RecordSet;  //提示: Incompatible types: 'TDataSource' and 'OleVariant'
DBGrid1.DataSource:=RecordSet as TDataSource;  //提示: Undeclared identifier: 'TDataSource'不知道应该怎样处理? 请指点

解决方案 »

  1.   

    用得着啊, 因为我希望dbgrid动态反应数据集, 你有什么好办法吗
      

  2.   

    你就用一个数据集 动态写SQL不行吗
      

  3.   

    动态反应数据集-->就是比如我用ado产生了一个记录集, 然后绑定给dbgrid; 再程序其他地方又用ado获取了一个记录集, 再绑定给dbgrid.
      

  4.   

    你就用一个数据集 动态写SQL不行吗-->我现在就是用RecordSet一个数据集, 然后执行不同的sql语句, 我没解决的就是如何把得到的RecordSet变量与TDBGrid控件关联起来(DBGrid1.DataSource:=RecordSet as TDataSource报错)
      

  5.   

    RecordSet:=CreateOleObject('Adodb.RecordSet');
    DBGrid1.DataSource:=RecordSet;  //提示: Incompatible types: 'TDataSource' 
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    DBGrid1.DataSource.dateset:=RecordSet;//
      

  6.   

    DBGrid1.DataSource.dateset:=RecordSet;//
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    dateset  ---> dataset
    DBGrid1.DataSource.dataset:=RecordSet;//
      

  7.   

    to  gxgyj(杰克.逊_Discovery) : 还是报错:
    DBGrid1.DataSource.DataSet:=RecordSet;  //报错: Incompatible types: 'TDataSet' and 'OleVariant'使用as强制转换也不行
      

  8.   

    我也被这个问题烦呢
    好像都不行的
    recordset返回的是一行的值,要用next才能取下一个值
      

  9.   

    看来高手是不屑于回答这个问题. 郁闷ing
      

  10.   

    直接用adoquery吧.还好一些!用不着这么麻烦
      

  11.   

    8560238   delphi群大量招人,欢迎加入