在线等!!!!!!!! ADO+SQL Server

chocobo 2003-05-02 08:49:25
_ConnectionPtr mcConnection;
_RecordsetPtr mcRecordset;
bool mbConnected;
HRESULT hr;

_bstr_t source("Driver={SQL Server};Server=CHOCOBO;Uid=PIV;Pwd=PIV;Database=PIZZA.NET");

_bstr_t user("sa");
_bstr_t pwd("");
try
{
hr = mcConnection.CreateInstance(_uuidof(Connection));
hr = mcConnection->Open(source, user, pwd, 16);
hr = mcRecordset.CreateInstance(_uuidof(Recordset));
mbConnected = true;
hr = mcConnection->Close();
}
以上程序在执行时总在最后Close时出错,出错信息用ERROR捕捉为:“对象关闭时,不允许操作”,不知是什么原因。
...全文
24 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Skt32 2003-05-02
  • 打赏
  • 举报
回复
那就判断一下

if(!SUCCEEDED(hr))
{
return FALSE;;
}
small_wei 2003-05-02
  • 打赏
  • 举报
回复
hr = mcConnection->Open(source, user, pwd, 16);
主要是这句有关

hr = mcRecordset.CreateInstance(_uuidof(Recordset));
与这句无关
因为是mcConnection->Close();
Skt32 2003-05-02
  • 打赏
  • 举报
回复
那如果这样呢,

// hr = mcRecordset.CreateInstance(_uuidof(Recordset));

close还会错吗?

chocobo 2003-05-02
  • 打赏
  • 举报
回复
如果在中间加语句的话,我可以对数据库进行操作;mcRecordset我没有用open,怎么close?
small_wei 2003-05-02
  • 打赏
  • 举报
回复
运行通过并不等于数据库打开成功!
Skt32 2003-05-02
  • 打赏
  • 举报
回复
试试先关闭
mcRecordset
再CLOSE 它
chocobo 2003-05-02
  • 打赏
  • 举报
回复
只错了最后一句,前面都通过了。
small_wei 2003-05-02
  • 打赏
  • 举报
回复
可能是mcConnection->Open(source, user, pwd, 16);没有执行成功。
判断一下hr是否执行成功了

4,017

社区成员

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

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