您的位置:首页 > 编程语言 > C语言/C++

C++ 使用oci访问数据库出现“Column: 2<DOUBLE>, datatype in operator <</>>: CHAR”

2014-08-06 23:31 579 查看
http://bbs.csdn.net/topics/90049666

比如有表a,其中一个字段是number类型的,如果在vc中读取这个大数,用什么来读取?
vc中int 和long int都是4个字节的,根本不够用啊?
如果定义一个string s来接受这个整数的话,用otl_stream o;
o>>s;接受的时候,提示错误,因为oracle里面的number不能用string来接受,如果用int i;
o>>i;可以,但是i溢出,得到的值不正确啊,谁遇到过这样的情况,怎么解决的?

不能用char来接收number字段的内容
提示错误如下:
Column: 1<DOUBLE>, datatype in operator <</>>: CHAR

otl_long_string 只能接收oracle数据库中字段为long类型的,number类型的不能用otl_long_string来接收,如果用otl_long_string来接收的话,例如

otl_long_sring ols;
o>>ols; // o 为 otl_stream 类型
提示出错,类似和用char接收number一样的错误,

不是说了嘛
ostream::set_column_type转成字符串
读出来后,
boost::lexical_cast或者自己处理字符串都可以
哎……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐