如何获取_RecordsetPtr的值

松花皮蛋 2009-11-12 08:50:10
_RecordsetPtr CData::GetRs(CString strSql)
{
try
{
m_rs.CreateInstance("ADODB.Recordset");
m_rs=m_conn->Execute((_bstr_t)strSql,NULL,adCmdText);
}
catch(...)
{

}
return m_rs;
}

CString tempsql ="SELECT * FORM test";
_RecordsetPtr m_pRecordset;
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset =mydata.GetRs(tempsql);

如以上,m_pRecordset记录集获得以后,如何获取里面的值呢,假如想获取第一条记录集,第一列属性的值该如何操作??

...全文
320 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaohongbo83 2009-11-12
  • 打赏
  • 举报
回复 1
_variant_t tmpIndex;
_variant_t tmpValue;

tmpIndex = ( short )0;
tmpValue = m_pRecordset->GetFields( )->GetItem( &tmpIndex )->GetValue( );
iPPLX=tmpValue.iVal;
这就是取第一列的值
tmpIndex = ( short )1;
tmpValue = m_pRecordset->GetFields( )->GetItem( &tmpIndex )->GetValue( );
ivalue =tmpValue.iVal;
这是取第二列的值
依次往下取就可以了

或者还有一个方法就是

tmpValue = m_pRecordset->GetFields( )->GetItem("列名")->GetValue( );//在这里不用序列值,直接使用列名就可以。
然后根据相应的类型在对 tmpValue进行转化



一条晚起的虫 2009-11-12
  • 打赏
  • 举报
回复
// 可以写入你自己的配置文件中。
松花皮蛋 2009-11-12
  • 打赏
  • 举报
回复
明白,再搭个问题
CString conn="Driver={SQL Server};server=127.0.0.1;uid=sa;database=datatest";//


连接字符,如果我想把server=127.0.0.1 ,IP地址弄成可以配置的,该如何操作呢?
发给客户,自己配置数据库服务器地址。
ToperRay 2009-11-12
  • 打赏
  • 举报
回复
pRecordset->Open(_variant_t( strCount ),
m_pConn.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic ,
adCmdText );

if( pRecordset->adoEOF || pRecordset->adoBOF ) // 无任务
{
MessageBox( NULL , _T("无法得到错误类型信息") , _T("提示") ,MB_OK ) ;
pRecordset->Close();
pRecordset.Release();

return false ;
}

if( !pRecordset->adoEOF )
{
pRecordset->MoveFirst() ; //取第一条任务

//专利类型
vt = pRecordset->GetCollect( _T("F_PATENTTYPE") );
strPatentType = vt.bstrVal;
}
}

类似这样。




4,012

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧