CRecordSet怎么获取一行数据 CRecordSet怎么获取一行数据 获取正行数据,转换为数组。对数组进行操作 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CRecordset::MoveFirst在记录集中的第一条记录确定当前记录。 首先测试 IsBOF。 参考下这个函数吧!!GetData(char *strSql,vector<string> &value){ if (NULL == m_pConnection)//判断数据库连接 if (!OpenDBLink()) return false; char szBuf[KB]; _variant_t iIndex; _variant_t strValue; DataTypeEnum dte; long iCount; int i; try{ m_pRDSet->Open(_variant_t(strSql), _variant_t(m_pConnection, true), adOpenKeyset, adLockOptimistic, adCmdText);//打开记录集 } catch(_com_error &err){ m_sErrDesc = err.ErrorMessage(); CloseDBLink(); return false; } if (m_pRDSet->EndOfFile){ m_pRDSet->Close(); return false; } iCount = m_pRDSet->Fields->Count; for( i = 0; i < iCount; i++ ){ iIndex = ( short )i; strValue = m_pRDSet->GetFields( )->GetItem( iIndex )->GetValue( ); dte = m_pRDSet->GetFields( )->GetItem( &iIndex )->GetType( ); if( adDouble == dte ){ if (VT_NULL == strValue.vt) sprintf( szBuf, "%.2f", 0); else sprintf(szBuf, "%.2f", strValue.dblVal); value.push_back( szBuf ); } else if ( adSingle == dte ){ if (VT_NULL == strValue.vt) sprintf(szBuf, "%.2f", 0); else sprintf(szBuf, "%.2f", strValue.fltVal); value.push_back( szBuf ); } else if ( adChar == dte || adVarWChar == dte || adVarChar == dte ){ if (VT_NULL == strValue.vt) value.push_back(""); else value.push_back((LPCSTR)(_bstr_t)strValue); } else if (adInteger == dte){ if (VT_NULL == strValue.vt) sprintf(szBuf, "%d", 0); else sprintf(szBuf, "%d", strValue.iVal); value.push_back(szBuf); } else if (adNumeric == dte || adVarNumeric){ if (VT_NULL == strValue.vt) value.push_back(""); else sprintf( szBuf, "%s", (LPCSTR)(_bstr_t)strValue); value.push_back( szBuf ); } else if (adEmpty == dte) value.push_back(""); } m_pRDSet->Close( ); return true;}bool MyDb::WriteData(char *strSql){ if (NULL == m_pConnection) if (!OpenDBLink()) return false; try{ m_pConnection->Execute(_bstr_t(strSql), NULL, adExecuteNoRecords); } catch(_com_error &err){ m_sErrDesc = err.ErrorMessage(); CloseDBLink(); return false; } return true;} VC中如何计算log 负数IP(-955078464)如何转换成正常格式的IP(192.168.1.200) 发个招人贴,接贴都有分 如何区分'(单引号)和\'(转义单引号) 要实现以下功能,大家给个解决方案 如何使得单选按钮组中的一部分成不可用或不显示? 如何获得dll中发送的串口数据 菜鸟提问(在线等) ShowWindow(SW_HIDE); 组合列表框问题 ? 多线程的成员变量会起冲突吗? CRC32校验的困惑
GetData(char *strSql,vector<string> &value)
{
if (NULL == m_pConnection)//判断数据库连接
if (!OpenDBLink())
return false;
char szBuf[KB];
_variant_t iIndex;
_variant_t strValue;
DataTypeEnum dte;
long iCount;
int i;
try{
m_pRDSet->Open(_variant_t(strSql),
_variant_t(m_pConnection, true),
adOpenKeyset,
adLockOptimistic,
adCmdText);//打开记录集
}
catch(_com_error &err){
m_sErrDesc = err.ErrorMessage();
CloseDBLink();
return false;
}
if (m_pRDSet->EndOfFile){
m_pRDSet->Close();
return false;
}
iCount = m_pRDSet->Fields->Count;
for( i = 0; i < iCount; i++ ){
iIndex = ( short )i;
strValue = m_pRDSet->GetFields( )->GetItem( iIndex )->GetValue( );
dte = m_pRDSet->GetFields( )->GetItem( &iIndex )->GetType( );
if( adDouble == dte ){
if (VT_NULL == strValue.vt)
sprintf( szBuf, "%.2f", 0);
else
sprintf(szBuf, "%.2f", strValue.dblVal);
value.push_back( szBuf );
}
else if ( adSingle == dte ){
if (VT_NULL == strValue.vt)
sprintf(szBuf, "%.2f", 0);
else
sprintf(szBuf, "%.2f", strValue.fltVal);
value.push_back( szBuf );
}
else if ( adChar == dte || adVarWChar == dte || adVarChar == dte ){
if (VT_NULL == strValue.vt)
value.push_back("");
else
value.push_back((LPCSTR)(_bstr_t)strValue);
}
else if (adInteger == dte){
if (VT_NULL == strValue.vt)
sprintf(szBuf, "%d", 0);
else
sprintf(szBuf, "%d", strValue.iVal);
value.push_back(szBuf);
}
else if (adNumeric == dte || adVarNumeric){
if (VT_NULL == strValue.vt)
value.push_back("");
else
sprintf( szBuf, "%s", (LPCSTR)(_bstr_t)strValue);
value.push_back( szBuf );
}
else if (adEmpty == dte)
value.push_back("");
}
m_pRDSet->Close( );
return true;
}bool MyDb::WriteData(char *strSql){
if (NULL == m_pConnection)
if (!OpenDBLink())
return false;
try{
m_pConnection->Execute(_bstr_t(strSql), NULL, adExecuteNoRecords);
}
catch(_com_error &err){
m_sErrDesc = err.ErrorMessage();
CloseDBLink();
return false;
}
return true;
}