VC ADO访问数据 如何得到数据库某一行第一的字段的值 非常感谢

mengqimxz 2008-09-20 08:47:25
VC ADO访问数据 如何得到数据库某一行第一的字段的值 因第一字段名是个变量,就像VB可以用Rec.Fields(0).Value这样得到,但是不知道VC应该怎么写 谢谢
...全文
250 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dirdirdir3 2008-10-23
  • 打赏
  • 举报
回复
ado打开recordset后,getcollect((long)0),或者fields((long)0).value
shakaqrj 2008-10-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tabby 的回复:]
是一样的,用字段编号代替字段名称,如:
_variant_t var;
var = m_pRs->GetCollect((long)0);
[/Quote]
这样就行了
danielwmm 2008-10-19
  • 打赏
  • 举报
回复
Rec->MoveFirst();
FieldsPtr fsp;
FieldPtr fp;
fsp = Rec->GetFields();
fp = fsp->GetItem((_variant_t)long(0));
CString str ;
_variant_t va = fp.GetValue();
str = (LPCSTR)_bstr_t(va);

或:
Rec->MoveFirst();
_variant_t va;
va = Rec->GetCollect((_variant_t)long(0));
CString str = (LPCSTR)_bstr_t(va);
jsc0415067 2008-09-26
  • 打赏
  • 举报
回复
try
{
if(!m_pRecord->BOF)
m_pRecord->MoveFirst();
else
{
AfxMessageBox("表内数据为空");
return;
}
//读入库中各字段并加入列表框中
while(!m_pRecordset->adoEOF)
{
var=m_pRecordset->GetCollect("name");
if(var.vt!=VT_NULL)
strName=(LPCSTR)_bstr_t(var);
var=m_pRecordset->GetCollect("Age");
if(var.vt!=VT_NULL)
strAge=(LPCSTR)_bstr_t(var);
m_AccessList.Addstring(strName+"->"+strAge);
m_pRecordset->MoveNext();
}
//默认列表指向第一项,同时移动记录指针并显示
m_AccessList.SetCurSel(0);
OnSelchangeListaccess();
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
内存泄漏 2008-09-20
  • 打赏
  • 举报
回复
是一样的,用字段编号代替字段名称,如:
_variant_t var;
var = m_pRs->GetCollect((long)0);
柯本 2008-09-20
  • 打赏
  • 举报
回复
_ConnectionPtr m_pConnection;
HRESULT hr;
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
hr = m_pConnection->Open("Provider=MSDASQL.1;Data Source=testfox;Extended Properties=\"DSN=TEST;UID=;PWD=;SourceDB=d:\\temp;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;\"","","",adModeUnknown);///连接数据库
else
MessageBox("error");
_variant_t RecordsAffected;
_RecordsetPtr m_pRecordset = m_pConnection->Execute("SELECT * FROM users",&RecordsAffected,adCmdText);
//现在就在第一条记录
_variant_t vIndex = (long)0; //这里为字段号,从0开始

_variant_t vCount = m_pRecordset->GetCollect(vIndex);///取得第一个字段的值放入vCount变量
m_pRecordset->Close();///关闭记录集

message.Format("0号字段的值为%d",vCount.lVal);
AfxMessageBox(message);///显示
xpaisq 2008-09-20
  • 打赏
  • 举报
回复
movefist
getfild()
UDX协议 2008-09-20
  • 打赏
  • 举报
回复
1,select top 1 语句.
2.getfield(0)
闪破风浪 2008-09-20
  • 打赏
  • 举报
回复
你看看《ADO开发指南》。。。。
SoftSoftSoft2008 2008-09-20
  • 打赏
  • 举报
回复
类似,
ReportMachine for delphi xe5  Report Machine目前主要能做的:   1、支持屏幕打印,控制方法多样,可以打印全部rxlib控件 全部InfoPower控件,TDBGrid,TStringGrid,TImage,TEdit等,TDBGridEh,f1book, TDecisionGrid等等众多控件。(例子1,例子2,例子3,例子4,例子5)   2、支持最终用户设计、修改报表,只需连接相关的数据源,指出数据的位 置(设置报表样式),无论是主从表,子报表,套表,都可迅速生成。开发 一个报表只需几分钟的时间。   3、报表样式可以保存为rmf格式,下次可通过读入使用(配合SQL脚本就可以生成 报表)。并可以把带数据的报表保存为rmp格式,在任何机器上都可以浏览、打印, 而不需要数据。   4、生成后的报表支持修改,包括字体的设置,边框的设置,修改内容等。   5、报表编辑器内自带ado,bde,ibx,Diamond dao,dbisam等数据访问控件,可以 通过这些控件开发独立的报表制作工具。其使用方法和delphi中的控件是一样的。   6、完全、自由自定义页面、边距、字体,标题和页眉页脚,并可以在自认合适的 地方插入函数来实现当前日期,页合计,总合计等功能,合计字段可以放在页头,分 组头,并支持条件合计,对分组合计,分页合计,总计等只需简单地设置属性即可。   7、完全支持D5--D7,BCB5--BCB6。   8、报表中可以在自认合适的事件(on beforeprint,on afterprint等)中加入程 序脚本,以控制、或实现更复杂的打印效果。   9、更新迅速,可根据使用人员与用户的意见,不断的加入新的功能。   10、多种格式转换,可以把做出的报表转换为html,xls,pdf,bmp,jpeg等等格式。   11、自动对超长记录折行,超长的内容也会自动折行,中文换行不会乱码。   12、首家支持缩放打印功能,可以根据打印时选择的纸张自动缩放报表。   13、首家支持即打即停.   14、首家提供类似excel的报表设计器,给你足够灵活方表的报表设计方式。   15、首家提供双报表设计器(第一种,第二种),满足所有的需求。   16、更是提供类似于ObjectPascal的script,实现特殊功能。   17、首家提供web,IntraWeb中的报表解决方案。   18、首家提供报表压缩处理,占用内存更少,生成报表速度更快。   19、首家提供合并单元格功能,更加适应处理复杂的中文报表。   20、自动填空行,每页打印数量等细节处理更完善。 二、ReportMachine版本简介: 1、VCL版:这是ReportMachine基础版本,一般以全部源码形式提供给注册用户,可以用在Delphi5-Delphi 2009,C++ Builder5.0-C++ Builder 2009开发环境中。 2、com版:是个单独的ocx文件(RMReport.ocx),是用Delphi 7.0及以上版本开发的,是对VCL版ReportMachine控件的再封装,具有VCL版的全部功能,安装、使用上更容易些,com版的ReportMachine可以用在vb,vc,vfp,pb等开发语言中。一般以ocx无源码形式提供,也可以有全部源码(包括vcl源码+ocx源码) 3、com版for .net WinForm:跟com版一样,但多了个.net下的数据接口程序,此版可以用在vb.net,c#中,做winform程序的报表工具。一般以ocx无源码形式提供,也可以有全部源码。 4、webreport版:是对ReportMachine vcl版的再开发,用在asp,asp.net,jsp做的b/s架构的程序中,为客户端ie提供报表预览、打印、导出功能,webreport包括2部分:服务器端报表引擎(在asp,asp.net,jsp都能用,webreport对上述3中语言都开发了报表引擎)、客户端ie浏览器ActiveX插件(ActiveX插件只有一个,可以自动感知服务器端报表引擎版本)。webreport版不具备设计报表模版功能,需要用单独的报表设计程序在服务器端设计报表,也可以用本站提供的RMDesigner。 5、webreport for IntraWeb版:跟webreport版功能一样,是专为Delphi中的IntraWeb vcl提供的报表插件。 6、RMDesigner:是用vcl版ReportMachine开发的一个报表设计器,可以用来为webreport提供报表设计功能。

4,011

社区成员

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

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