为什么从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;
}
最后输出的是乱码,怎么办?
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;
}
最后输出的是乱码,怎么办?
...全文
相关推荐
SafeArray使用.doc
本文档主要讲述的是SafeArray使用;SafeArray是VB中的数组存储方式。通过SafeArray,可以在VC++和VB间相互调用。SafeArray也是Automation中的标准数组存储方式。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
COM之VARIANT类型,以及SafeArray
VARIANT简介 在COM中,我们经常会碰到VARIANT这种类型,用于表示参数。它的别名有tagVARIANT,VARIANTARG VARIANT是一个大的联合体,可以表示多种类型的参数。 重要成员 VARTYPE vt —— 表示这个VARIANT内部存储的变量类型。 然后就是对应的数据成员了。比如vt为VT_I8,那么对应的数据在llVal;比如vt为VT_R4,那么数据在fltVal中。 获取成员 使用V_VT宏,可以获取VARIANT数据的类型; 使用V_R4()可以获取floa
vb safearray
vb safearray vb safearray
Com_SafeArray 使用实例
使用的COM进程外组件传递的SafeArray型数组。在客户端生成,在服务端接收并进行处理,然后返回到客户端。供新手参考。
safearray-1.zip_SafeArray
上面代码的测试程序


数据库

