问ADO中GetState为什么返回总是0

yyf_ty 2004-11-25 04:20:49
我想通过state的值来判断_RecordsetPtr及_ConnectionPtr的状态,我想应该没有什么问题吧。
但是为什么他的值就始终都是0呢,明显我的数据库都已经打开了啊。表也打开了啊!!
...全文
303 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sony19791015 2004-11-26
  • 打赏
  • 举报
回复
gz
yyf_ty 2004-11-26
  • 打赏
  • 举报
回复
借问下为什么fields->Item [i]->get_ActualSize(&xx)没有错,但是用fields->Item [i]->GetActualSize就出错呢,两者有很大区别么?
yyf_ty 2004-11-26
  • 打赏
  • 举报
回复
知道了,是我把这个指针复制了下,那里面关闭了:)
yyf_ty 2004-11-26
  • 打赏
  • 举报
回复
我把所有的close语句有设置了断点,但是很明显没有执行。中间在一个成员函数中执行过一次m_pRecordset->get_Fields (&fields);
然后还有fields->release(),但是在这个函数返回的时候GetState()返回的都是1,但是在这个函数出来后再执行就变为0了,弄了都一天了,想都想不明白。
快乐鹦鹉 2004-11-26
  • 打赏
  • 举报
回复
是类里面的成员变量啊,
我觉得是成员变量就不应该有问题。我也这么用过,而且还在类之间传递这个指针都没有问题。
不知道你的程序中是否哪个地方修改了这个指针,比如调用close之类的。你还是仔细调查一下
yyf_ty 2004-11-26
  • 打赏
  • 举报
回复
是类里面的成员变量啊,不然我想指针的值也不会不变了
社会栋梁 2004-11-26
  • 打赏
  • 举报
回复
借问下为什么fields->Item [i]->get_ActualSize(&xx)没有错,但是用fields->Item [i]->GetActualSize就出错呢,两者有很大区别么?

-----------------------------------
是不是数据类型转换的问题
oyljerry 2004-11-25
  • 打赏
  • 举报
回复
是否全局
yyf_ty 2004-11-25
  • 打赏
  • 举报
回复
难道说在_RecordsetPtr的指针只能在一个函数里面用么?不大可能吧
yyf_ty 2004-11-25
  • 打赏
  • 举报
回复
happyparrot(快乐鹦鹉)
你说的是正确的。
是这样的,我在类里面放了一个_RecordsetPtr的变量,当在一个成员函数中让这个指针指向一个表。
然后在另一个函数中引用这个指针的时候GetState就不行了,为0;
但是我看指针的值是没有变的,那位知道为什么么?
kingzai 2004-11-25
  • 打赏
  • 举报
回复
adStateClosed 0 Indicates that the object is closed.
attach your code about using GetState
快乐鹦鹉 2004-11-25
  • 打赏
  • 举报
回复
CString sSqlTyphoon = "Select * from ZHSY_TYPHOON";
piTyphoon->Open(_bstr_t(sSqlTyphoon), _variant_t((IDispatch *)m_piConnection,true),adOpenStatic, adLockOptimistic, adCmdText);
long state = piTyphoon->GetState();
测试发现,state = 1,没有问题阿。
看看你的程序呢

4,012

社区成员

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

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