为什么从SafeArray中取不出数据呢?
程序如下:
int main(int argc, char* argv[])
{
::CoInitialize(NULL);
_ConnectionPtr pConn;
_RecordsetPtr pRs;
pConn.CreateInstance(__uuidof(Connection));
pConn->Open("DSN=GAME_DB;UID=sa;PWD=","","",-1);
pRs.CreateInstance(__uuidof(Recordset));
pRs->Open("select * from user_info",pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
_variant_t data = pRs->GetRows(adGetRowsRest);
long nNumRows;
long nNumCols;
SafeArrayGetUBound(data.parray,2,&nNumRows);
SafeArrayGetUBound(data.parray,1,&nNumCols);
_variant_t vVal;
for(long i=0;i<=nNumRows;i++)
{
for(long j=0;j<=nNumCols;j++)
{
SafeArrayGetElement(data.parray,&j,&vVal);
char* pVal = (char*)_bstr_t(vVal);
printf(pVal);
}
}
pRs->Close();
pConn->Close();
::CoUninitialize();
return 0;
}
最后输出的是乱码,怎么办?