这个问题有点意思,以前我也式过,但是没有成功我原来的想法是手动创建一个ado recordset,再将它设置成一个datagrid的datasource,两个控件都是手动创建的
分析datagrid和adodc的关系我想就可以解决你的问题
1.先来看看datagrid
如果用add project 的方法,用向导产生的类
察看datagrid的声明
LPUNKNOWN GetDataSource();
void SetRefDataSource(LPUNKNOWN newValue);
是个万金油
用#import "c:\WINNT\system32\MSDATGRD.OCX" ???????
不行!!
这个datagrid有交叉引用
必须用
#import "C:\WINNT\System32\msstdfmt.dll"
using namespace StdFormat;
#import "C:\WINNT\System32\msdatsrc.tlb"
using namespace MSDATASRC;#import "c:\WINNT\system32\MSDATGRD.OCX"
using namespace MSDataGridLib;
顺序不能错!而且不能用no_namespace 来引到同一namespace
可以看到 IDataGrid 有一成员变量MSDATASRC::DataSourcePtr DataSource;
(当然是import生成的假象,实际上是两个函数)
再看DataSourcePtr 它是IDataSource的指针,在msdatsrc.tlh中申明的
也就是说DataGrid要求一个IDataSource的指针
2.看看AdoDc
#import "C:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile") #import "C:\WINNT\system32\MSADODC.OCX"
adodc与Ado没有继承关系,只是封装了recordset不知道它是怎样在adodc上实现IDataSoure的
当时时间紧迫,被迫改用vb了
所以没有深究下去

解决方案 »

  1.   

    有兴趣的女同志and男同志可以研究一下说说结果
      

  2.   

    這個問題太簡單,使用下面的IDL聲明﹐就能得到一個DataSource屬性﹕
    [propget, id(1), helpstring("property DataSource")] 
        HRESULT DataSource([out, retval] DataSource** ppDataSource);
    [propputref, id(1), helpstring("property DataSource")] 
        HRESULT DataSource([in] DataSource* pDataSource);
      

  3.   

    這個問題太簡單﹐使用下面的IDL,就能得到DataSource屬性﹕
    [propget, id(1), helpstring("property DataSource")] 
          HRESULT DataSource([out, retval] DataSource** ppDataSource);
    [propputref, id(1), helpstring("property DataSource")] 
          HRESULT DataSource([in] DataSource* pDataSource);
      

  4.   

    to:
      gxh(我是一只菜菜菜菜鳥)
    是啊,是啊,我得到了一个叫DataSource的属性,有什么用?
    它不干活啊
    就像偶今天刚写了一个程序叫windows.exe
    我真的写了一个windows,和微软的那个一摸一样
      

  5.   

    MSDN中有一個例子﹐叫ComplexDB,應該可以解決你的問題。在vcoledb\consumer\里。
      

  6.   

    to:ji_hui(阿辉) 有例子了,自己看看吧
    偶最近天天在看C++,最基本的那种,没时间试验拉
    就是什么继承啊,多态啊
    有什么用,有屁用
    但是跳槽面式要啊
      

  7.   

    你还好,我现在每天都在用VB。没时间看VC++,真是痛苦。
    有空联系。
    我的EMAIL:[email protected].谢谢两位。