高手来帮忙!!

smallsix 2003-10-15 11:09:22
小弟做了个数据库,已接近尾声,但是出现个棘手问题:

我刚开始时对数据库了解不多,所以在向导中加了数据库支持(CWisSet),视图类为CRecordView类。但是我又加了ADO来做数据库(认为ADO技术比较好,也比较方便),后来就出错了。我在进行数据恢复的时候需要设置数据库为single user但是由于刚开始加的数据库支持(CWisSet),导致一运行程序便自动连接了数据库,而后来的ADO再次连接是导致连接用户数不为1, 无法设置single user 请问怎么解决。

我尝试删除CWisSet类 但是无法删除,我又尝试复制一个一样的数据库,准备将CWisSet的指向改变 也失败了

请问用CWisSet类怎么执行 SQL语句。即ADO中调用函数EXECUTE();
可否有其他方法???
...全文
68 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
smallsix 2003-10-15
  • 打赏
  • 举报
回复
谁可以告诉我怎么关闭CWisSet的连接
CWisSet* m_pSet;
CDataBase* m_pDatabase;//在 CWisSet中定义的
m_pSet->Close();
m_pSet->m_pDatabase->Close();
为什么这一句好象不行 到恢复那又出错了:
CADODatabase m_rDb;
m_rDb.Open("Data Souce=ff;UID=sa;PWD=;");
CString str,st;
str.Format("EXEC sp_dboption 'wisdom','single user','true'");
st.Format("EXEC sp_dboption 'wisdom','single user','false'");
m_rDb.Execute(str);//(1)
m_rDb.Execute("EXEC wisrestore");//(2)
m_rDb.Execute(st);//(3)
这3句SQL语句在查询分析器中可运行,除去(1)(2)句后单独运行(3)也可执行,为什么会这样?????
smallsix 2003-10-15
  • 打赏
  • 举报
回复
谢谢斑竹,问题已解决
spwnihao 2003-10-15
  • 打赏
  • 举报
回复
你现在是有两个连接。但是好像你CWisSet是没有用的吧
你在Ado连接数据库之前关闭CWisSet就可以了
m_pSet->Close();
m_pSet->m_pDatabase->Close();
这么些是不正确的,m_pDatabase并不是CWisSet的成员变量,我看了一下好象是CWisSet
的一个Open的成员函数的局部变量,你这么些就不正确了。
我建议你在Ado的Connection,Open之前关闭文档中的CWisSet的实例就可以了

如果你在View中的方法完成
(GetDocument()->m_ttSet).Close();

4,011

社区成员

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

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