编写OCX控件的时候,怎么样在控件内使用ADO呢?
我想把一系列用ADO访问数据库的操作都封装在ADO里去,但是不知道如何在编写控件的时候使用ADO,谁能告诉我!!
[解决办法]
例子代码
http://www.fruitfruit.com/vc/atl/ado.cpp
http://www.fruitfruit.com/vc/database/ado_create_rs.txt
你的代码问题在于#import的时候指明了namespace :ARXADO
那你用的时候要带上它 ARXADO::_RecordsetPtr
有2种其他办法:在#import的时候用no_namespace, 或者在#import下面加上
using namespace ARXADO;
[解决办法]
在stdafx.h中
#pragma warning(disable: 4146)
#import "c:\program files\common files\system\ado\msado15.dll " no_namespace rename( "EOF ", "adoEOF " )
#pragma warning(default: 4146)
在xxx.odl 中
library XCOMBOXLib
{
importlib(STDOLE_TLB);
importlib(STDTYPE_TLB);
//------------------------------加下面这个,如果系统不装在c盘,把c:该成其他就是了
importlib( "c:\program files\common files\system\ado\msado15.dll ");
//[id(30)] IDispatch* DataSourceOfRst;把IDispatch* 改成_Recordset*就可以在VB,delphi中暴露DataSourceOfRst属性的自动化,不然在DataSourceOfRst后打一个点,ADO记录级的方法和属性都不会自动列出来的
[id(30)] _Recordset* DataSourceOfRst;//这里不能把_Recordset*写成_RecordsetPtr,因为_RecordsetPtr是_Recordset*的宏定义,但没有定义在odl,所以会报错