用vc读取数据库的字段值,保存在数组里

 

回复:level1979(岳麓飘湘) ※ 信誉:100 ※ 2006-5-16 14:43:08 ※ 得分:0

网上找的例子:
CRecordset rec(&m_dbConn);
BOOL fOK = rec.Open(CRecordset::forwardOnly,"select loc_id from table1 order by loc_id");
CString szResult;
while(!rec.IsEOF())
{
rec.GetFieldValue((int)0,szResult);(int)0 是rs里面字段的排位
rec.MoveNext();
TRACE("fetch : %s/n",szResult);
}
}


回复:yu198445() ※ 信誉:100 ※ 2006-5-16 18:19:59 ※ 得分:0

怎么把值赋给数组阿


回复:podded(阿朱) ※ 信誉:105 ※ 2006-5-16 20:56:02 ※ 得分:0

借用楼上的例子:
int i = 0;
szResult此处改为动态数组,根据记录集中个数或需要取的记录个数定义数组
while(!rec.IsEOF())
{
rec.GetFieldValue((int)0,szResult[i]);
rec.MoveNext();
i++;
}
这样即把相关字段写入了数组中.


回复:yu198445() ※ 信誉:100 ※ 2006-5-16 23:49:48 ※ 得分:0

CRecordset::GetFieldValue(const char *,class CDBVariant &,short)
好像不行吧


回复:yu198445() ※ 信誉:100 ※ 2006-5-16 23:51:26 ※ 得分:0

void CYuirView::read()
{
if(!m_database.IsOpen())
{
m_database.Open(_T("featurebase"));
}
CYuirSet m_recordset(&m_database);
CString strSQL;
memset(m_hist,0,sizeof(m_hist));
strSQL.Format("select * from hist");
m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
CDBVariant varValue;
if(m_recordset.GetRecordCount()!=0) m_recordset.MoveFirst();

short nFields = m_recordset.GetODBCFieldCount( );
int j=0;
while(!m_recordset.IsEOF())
{
for(int i=0;i<nFields;i++)
{
m_recordset.GetFieldValue(i,m_hist[j][i]);
//m_ListCon.SetItemText(j,i,varValue.m_pstring->GetBuffer(i));
m_hist[j][i]=(long)varValue.m_pstring->GetBuffer(i);
}

m_recordset.MoveNext();
}
m_recordset.Close( );
m_database.Close( );
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值