社区
ATL
帖子详情
一个关于_bstr_t的问题
jaopen
2006-03-13 03:02:52
从CQ(一种需求变更处理软件)提供的接口访问它的数据库,其中数据库的一个字符串字段有时值为NULL,从接口读到的这个字段的值为_bstr_t类型的,谁知道如何判断这个NULL值?无论用convertBSTRtoString()还是string=bstr_t都报Exception
...全文
115
10
打赏
收藏
一个关于_bstr_t的问题
从CQ(一种需求变更处理软件)提供的接口访问它的数据库,其中数据库的一个字符串字段有时值为NULL,从接口读到的这个字段的值为_bstr_t类型的,谁知道如何判断这个NULL值?无论用convertBSTRtoString()还是string=bstr_t都报Exception
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jaopen
2006-03-14
打赏
举报
回复
谢谢,有个GetValueStatus(),多谢你的帮助!
handsomerun
2006-03-14
打赏
举报
回复
对不起,没看清楚你的帖子?问个问题:那个地方为什么要用GetCollect(XXXX);
而不是FieldInfoPtr->GetValue(),好像只有这样才能得到字段值啊?
那是因为访问数据库用的接口不一样啊,你的那个可能是木有GetCollect的
handsomerun
2006-03-14
打赏
举报
回复
你的接口中
有GetStatus
这个方法吗??
要先判断那个字段时候是否是空~
jaopen
2006-03-14
打赏
举报
回复
首先表示非常感谢,我此处通过CQ接口得到的字段值是_bstr_t类型,不是_variant_t类型,就_bstr_t类型,怎么判断其值为NULL?
jaopen
2006-03-14
打赏
举报
回复
对不起,没看清楚你的帖子?问个问题:那个地方为什么要用GetCollect(XXXX);
而不是FieldInfoPtr->GetValue(),好像只有这样才能得到字段值啊?
handsomerun
2006-03-14
打赏
举报
回复
你也看清楚偶的回复
(vxx.vt != VT_NULL)
用这个可以判断是否为空
但是这个vxx是
_variant_t ,所以要判断以后再转~~
jaopen
2006-03-14
打赏
举报
回复
看清楚我的问题!!!!!不是没法转换,而是原先的字段为NULL值所以转换有问题!
handsomerun
2006-03-13
打赏
举报
回复
_variant_t vxx,
vxx = m_pRecordset->GetCollect(XXXX);
if(vxx.vt != VT_NULL)
{
}
可以用(_bstr_t)vxx
把_variant_t转成_bstr_t
jaopen
2006-03-13
打赏
举报
回复
这对我的问题有什么用?
wawaku
2006-03-13
打赏
举报
回复
_bstr_t bstrVar("test");
const char *buf = bstrVar;
_
bstr
_t和_variant_t
_
bstr
_t和_variant_t,主要介绍_
bstr
_t和_variant_t两种数据类型的简单作用。
_
bstr
_t类型
1._
bstr
_t是个对
bstr
的类,具体定义可以看comutil.h。 com组件传输字符串有固定的标准,就是
bstr
,这样才能在不同的语言里调用,试想你传的是c的某个字符串类型,vb又如何调用呢?ado是个com组件所以传的也是
bstr
,使用_
bstr
_t不但方便接收,而且方便处理。 2.严格地说_
bstr
_t不属于对
bstr
的类,它可以直接转换成
bstr
型,也可以直接转换成普通
_
bstr
_t与CString相互转换
_
bstr
_t与CString相互转换 _
bstr
_t
bstr
; CString strSql; CString -> _
bstr
_t:
bstr
= (_
bstr
_t)strSql; _
bstr
_t -> CString: strSql = (LPCSTR)
bstr
;
BSTR
宽字符串与CString相互转换
BSTR
bstr
;
关于_
bstr
_t和 _variant_t
先见源码: class _
bstr
_t { public: // Constructors // _
bstr
_t() throw(); _
bstr
_t(const _
bstr
_t& s) throw(); _
bstr
_t(const char* s) throw(_com_error); _
bstr
_t(const wchar_t* s) throw(_com_erro
_
bstr
_t与
BSTR
问题
:
BSTR
a = _
bstr
_t("a");
BSTR
b = _
bstr
_t("b"); CString c ; c = a; MessageBox(c); c = b; MessageBox(c); 为什么消息框中显示的都是 b? 如果这样: _
bstr
_t
bstr
1("a")
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章