如何在VC中,将一个ADO记录集Recordset,转换成OleVariant类型
ACRptEngineX.ocx 本COM组件是 Anycell Report报表控件V1.83的OCX版,可以在VB、.Net、VC、Delphi等支持ADO的开发工具中使用。
接口方法:
1.初始化报表设置
Init
2.加入一个数据集
AddDataSet(数据集命名[字符], ADO记录集[OleVariant])
.......
开发环境:WinXP + VC6.0
已将ACRptEngineX.ocx注册,并Add Project-->Components and Controls引入到MFC中 ,创建了类CACRptEngine
其中一个方法如下:
void CACRptEngine::AddDataSet(const VARIANT& aDatasetName, const VARIANT& aDataSet)
{
static BYTE parms[] =
VTS_VARIANT VTS_VARIANT;
InvokeHelper(0xca, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
&aDatasetName, &aDataSet);
}
此方法即是上面的2.加入一个数据集实现
//=====我的问题???====
1.如何在VC中,将一个ADO记录集Recordset,转换成OleVariant类型??
,传递到AddDataSet(数据集命名[字符], ADO记录集[OleVariant])。
2,给出代码示例
[解决办法]
你说的。。。。。是What?我现在才开始学VC咧。。。。顶哈你吖。。。
[解决办法]
获取ADO记录集Recordset的IDispatch指针(QueryInterface就行了),假设是pdispRS
VARIANT aDataSet;
aDataSet.vt = VT_DISPATCH;
aDataSet.pdispVal = pdispRS;
然后就可以调用AddDataSet(name,aDataSet)了
[解决办法]
IDispatch *pDisp;
pRecordset->QueryInterface(IID_IDispatch, (void**)&pDisp);