急等!!!如何在vc中将getrows获得的记录写到数组中。

来源:百度知道 编辑:UC知道 时间:2024/05/27 18:55:43
我的想法是这样的,在access中建立一个数据库,字段英语下面有一些参数,利用getrows读取了改记录,但是返回的二维数组的记录类型为variant,如何将记录中的参数写到一个long数组中,代码如下,该怎样改,请高手帮忙看看哈。多谢了!!!
m_Recordset->Open("select * from test", m_Connection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
long Imaxrecord,a[5];

m_Recordset->MoveFirst();
int i;
i=0;
_variant_t jilu;

//while (m_Recordset->adoEOF)
// {
jilu=m_Recordset->GetRows(1,"","英语");//GetRows("3","",);
a[1]=(long)jilu[1][1];//强制类型转换
m_Recordset->MoveNext();

我们还真有缘啊!!
long vtol(const _variant_t& variant)
{
long lValue = 0;
switch( variant.vt )
{
case VT_BOOL:
lValue = variant.boolVal;
break;

case VT_UI1:
case VT_I1:
lValue = variant.bVal;
break;

case VT_UI2:
case VT_I2:
lValue = variant.iVal;
break;

case VT_I4:
case VT_UI4:
lValue = variant.lVal;
break;

case VT_INT:
lValue = variant.intVal;
break;

case VT_R4:
lValue = (long)(variant.fltVal + 0.5);
break;

case VT_R8:
lValue = (long)(variant.dblVal + 0.5);
break;

case VT_DECIMAL:
lValue = (long)variant;
break;

case VT_CY: