请教:关于VC 数据库RESULTSET 的GETROW方法在DLL中的问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 09:40:38
各位大哥帮帮忙啊.我刚学习DLL.实在不知道遗漏了什么..
用GETROWS返回的_variant_t变量,我在MFC (EXE)中可以通过,而且正确有值.
在STATIC LIB里面 行和列取得到,为什么值取不到????
下面是源码.
m_pRs->Open(_bstr_t(sql),_variant_t(m_pConn,true),adOpenStatic,adLockOptimistic,adCmdText);
nrow = m_pRs->GetRecordCount();
ncol = m_pRs->GetFields()->Count;
record = m_pRs->GetRows(adGetRowsRest);

LONG row,col;
SafeArrayGetUBound(record.parray,2,&row); //取得行列都正常啊...
SafeArrayGetUBound(record.parray,1,&col);
_variant_t vVal;
_variant_t vShow;
LONG j;
LONG b;
for(b=0;b <=row;b++){
for(j=0;j <=col;j++){
SafeArrayGetElement(record.parray,&j,&vVal);
printf("%s ",(char*)(_bstr_t)vVal); //输出错误,没有值...表中是确定有值的,在MFC(EXE)那边,代码一样,可以正确输出值....
/*VariantChangeType(&vShow,&vVal,0,VT_BSTR);
string str = (char*)_bstr_t(vShow);
printf("%s",str.c_str());
printf("%s",(char*)_bstr_t(vShow));