社区
数据库
帖子详情
如何通过使用CRecordSet.GetFieldValue方法获得数据库中指定字段的值.
xiaoer
2000-05-22 11:38:00
如何通过使用CRecordSet.GetFieldValue方法获得数据库中指定字段的值.最好能列出代码.小弟不胜感激.
...全文
844
5
打赏
收藏
如何通过使用CRecordSet.GetFieldValue方法获得数据库中指定字段的值.
如何通过使用CRecordSet.GetFieldValue方法获得数据库中指定字段的值.最好能列出代码.小弟不胜感激.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
anick
2000-05-22
打赏
举报
回复
你好这是我正在使用的程序主要用DAO来处理ACCSE数据库
CDaoTableDef Table(&m_DB);
try
{
Table.Open(TableName);
}
catch(CDaoException * e)
{
DisplayDaoException(e);
e->Delete();
}
CDaoRecordset rs(&m_DB);
try
{
rs.Open(&Table,dbOpenDynaset,
dbConsistent);
}
catch(CDaoException * e)
{
DisplayDaoException(e);
e->Delete();
}
rs.MoveFirst();
rs.Move(Row);
COleVariant Variant;
Variant=rs.GetFieldValue(Index);
if(rs.IsOpen())
rs.Close();
if(Table.IsOpen())
Table.Close();
return Variant;
superbat
2000-05-22
打赏
举报
回复
以下是我编的一个软件的部分代码:
CDBVariant varValue;
int i=0;
int k=0;
CString cap,cap1;
CString str;
m_rs.GetFieldValue("日期",varValue);
cap.Format("%d年%d月%d日",varValue.m_pdate->year,varValue.m_pdate->month,varValue.m_pdate->day);
listBar.m_Static.SetWindowText(cap);
weaBar.m_Static.SetWindowText(cap+"天气数据");
cap1.Format("%d-%d-%d",varValue.m_pdate->year,varValue.m_pdate->month,varValue.m_pdate->day);
m_rs2.m_strFilter="[日期]=#"+cap1+"#";
if(!m_rs2.IsOpen()) m_rs2.Open();
else m_rs2.Requery();
weaBar.m_wndList.DeleteAllItems();
if(!m_rs2.IsEOF())
{
for(k=1;k<m_rs2.GetODBCFieldCount();k++)
{
m_rs2.GetFieldValue(k,varValue);
switch(varValue.m_dwType)
{
case DBVT_DOUBLE:
str.Format("%.2f",varValue.m_dblVal);
break;
case DBVT_STRING:
str=*(varValue.m_pstring);
break;
}
if(k==1)
{
lvi.mask = LVIF_TEXT and LVIF_STATE;
lvi.iItem = 0;
lvi.iSubItem = 0;
lvi.pszText = str.GetBuffer(str.GetLength());
lvi.stateMask = LVIS_STATEIMAGEMASK and LVIS_SELECTED;
lvi.state = INDEXTOSTATEIMAGEMASK(1);
weaBar.m_wndList.InsertItem(&lvi);
continue;
}
weaBar.m_wndList.SetItemText(0,k-1,str);
}
}
listBar.m_wndList.DeleteAllItems();
if(!m_rs.IsEOF())
{
for(k=1;k<m_rs.GetODBCFieldCount();k++)
{
lvi.mask = LVIF_TEXT and LVIF_STATE;
lvi.iItem = k-1;
lvi.iSubItem = 0;
str.Format("%d",k);
lvi.pszText = str.GetBuffer(str.GetLength());
//lvi.iImage = i;
lvi.stateMask = LVIS_STATEIMAGEMASK and LVIS_SELECTED;
lvi.state = INDEXTOSTATEIMAGEMASK(1);
listBar.m_wndList.InsertItem(&lvi);
CString str1;
str1.Format("%d时负荷",k);
m_rs.GetFieldValue(str1, varValue);
zdg
2000-05-22
打赏
举报
回复
CString tempStr
m_rec->GetFieldValue("RoomID", tempStr, DEFAULT_FIELD_TYPE);
int m_roomid = tempStr.m_iVal;
其中RoomID是数据库中的一个字段.
lapple
2000-05-22
打赏
举报
回复
没那么麻烦
CString str;
MySet.GetFieldValue(1,str);
就取出数据库中第二列中的内容
bigjim
2000-05-22
打赏
举报
回复
其实,GetFieldValue()的用法很简单,关键是它得到的是一个COleVariant,如果把它转化为其他类型,比如CString就好了.superbat采用了一个switch来处理不同的类型,但有现成的更好的东西.在MSDN的Samples\Mfc\Database\中有一个这样的例子DaoTable你拿来看看,它的一个类CCrack专门把COleVariant转化为CString.
COleVariant var;
....
MySet.GetFieldValue("Name",var);
CString name = CCrack::strVariant(var);
...
就这么简单.如果没有MSDN发信给我,我可以给你一个CCrack.
bigjim999@yeah.net
数据库
4,011
社区成员
39,816
社区内容
发帖
与我相关
我的任务
数据库
VC/MFC 数据库
复制链接
扫一扫
分享
社区描述
VC/MFC 数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章