VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 573|回复: 6

用ADO 如何获取数据库中的float或者int型数据?

[复制链接]

2

主题

5

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-7 01:00:01 | 显示全部楼层 |阅读模式
各位,我看到的都是获取文本,
如:var = m_pRecordset->GetCollect("Name");
if(var.vt != VT_NULL)
strName = (LPCSTR)_bstr_t(var);

请教各位,如何获取float或者int型数据呢?
谢谢各位了,我对ADO不是太熟悉
回复

使用道具 举报

0

主题

30

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
发表于 2020-1-7 09:09:01 | 显示全部楼层
        _variant_t var = m_pRecordset->GetCollect("int_field");;
if (        var.vt == VT_I4) int i = var.intVal;
if (var.vt == VT_R4) float f = var.fltVal;
回复

使用道具 举报

2

主题

5

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-1-7 09:30:01 | 显示全部楼层
谢谢
能解释一下:_variant_t var
VT_I4
VT_R4
都是什么意思吗?
谢谢了
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-7 09:33:01 | 显示全部楼层
楼上正解,如果在两个if之间加个else,会少判断一次,效率会高那么一点点^^
回复

使用道具 举报

0

主题

55

帖子

32.00

积分

新手上路

Rank: 1

积分
32.00
发表于 2020-1-11 01:18:01 | 显示全部楼层
_variant_t是数据结构:
VT_I4
VT_R4
是其中的数据类型。
回复

使用道具 举报

2

主题

5

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-2-21 16:30:01 | 显示全部楼层
flot mvalue;
var=m_pRecordset->GetCollect("dometic_soil");
if(var.vt ==VT_R4)
  mvalue=var.fltVal ;

dometic_soil在数据库中是单精度的.
可是上面这段代码,得出的数值怎么不是数据库中的数值啊?
到底错哪里了?请指教
回复

使用道具 举报

0

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-2-22 10:30:02 | 显示全部楼层
可以用atoi((LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("字段"));
atol(),atof()...
VT_I4  --------  32bit 整数
VT_R4  --------  32bit 浮点数
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表