这个问题有点意思,以前我也式过,但是没有成功我原来的想法是手动创建一个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了
所以没有深究下去
分析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了
所以没有深究下去
[propget, id(1), helpstring("property DataSource")]
HRESULT DataSource([out, retval] DataSource** ppDataSource);
[propputref, id(1), helpstring("property DataSource")]
HRESULT DataSource([in] DataSource* pDataSource);
[propget, id(1), helpstring("property DataSource")]
HRESULT DataSource([out, retval] DataSource** ppDataSource);
[propputref, id(1), helpstring("property DataSource")]
HRESULT DataSource([in] DataSource* pDataSource);
gxh(我是一只菜菜菜菜鳥)
是啊,是啊,我得到了一个叫DataSource的属性,有什么用?
它不干活啊
就像偶今天刚写了一个程序叫windows.exe
我真的写了一个windows,和微软的那个一摸一样
偶最近天天在看C++,最基本的那种,没时间试验拉
就是什么继承啊,多态啊
有什么用,有屁用
但是跳槽面式要啊
有空联系。
我的EMAIL:[email protected].谢谢两位。