简单问题

researching 2002-05-10 09:11:34
创建了一个基于CFrameWnd的工程,现在想在工程里使用数据库,用CDAO类来打开数据库,有几个dlg要用到各个不同的数据表,如有dlg1.dlg2,dlg3,分别用数据表table1,table2,table3,其中dlg1关闭时dlg2出现,dlg2关闭时dlg3出现。
请问在这种情况下数据库应该在哪儿打开最好?我在View中打开数据库,可是在各个dlg中却无法引用View
...全文
5 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dzj9606 2002-05-11
如重载dlg构造函数
dlg(CDaoDatabase* m_pDatabase)
在调用时
CMyDlg dlg1(m_pMyDatabase);//m_pMyDatabase是在view中声明的数据库指针
dlg1.pView=this;
dlg1.DoMoal();
这样就可以在dlg中用该数据库了,表当然同样处理,绝对没错,我这样写过的!!
回复
dzj9606 2002-05-11
在dlg1,dlg2,dlg3的构造函数中把打开的数据库指针传过去就行了啊
回复
researching 2002-05-11
lsgt,
谢谢你的帮助。
我是在dlg.cpp中加上#include "DSSView.h"出现上述错误的。
我按你说的方法作了修改后,还是出现一样的错误,是在
Compiling...
newtaskdlg.cpp //dlg1
时出错的。
能不能QQ联系呀,我的是14356353,再次感谢。
回复
lsgt 2002-05-11
我是这样做的:
在dlg.h里加上:class CDSSView;
dlg.cpp里加上 #include "DSSView.h"

DSSView.h里加上#include "dlg.h"

如果你在dlg.h里加上#include "DSSView.h"就会出现你说的那些错误。
回复
researching 2002-05-11
在dlg中定义一个CDSSView的指针:CDSSView* pView;

然后#include "DSSView.h"

可是调试时在DSSView.h里却出现了错误:
地点:
public:
CDSSDoc* GetDocument();
错误提示:
e:\vc\dss\dssview.h(28) : error C2143: syntax error : missing ';' before '*'
e:\vc\dss\dssview.h(28) : error C2501: 'CDSSDoc' : missing storage-class or type specifiers
e:\vc\dss\dssview.h(28) : error C2501: 'GetDocument' : missing storage-class or type specifiers

回复
lsgt 2002-05-11
在VIEW中打开为什么会无法引用啊?

在dlg中定义一个CFrameView的指针:CMyFrameView* pView;

打开dlg的时候把指针带过去,然后用pView指针来使用数据库。
CMyDlg dlg1;
dlg1.pView=this;
dlg1.DoMoal();
回复
researching 2002-05-11
问题中错了一点,工程基类为CFrameView.
我想问问打开数据库是在哪里打开的,我不能在dlg1中打开完后关闭,在dlg2中再打开后关闭,在dlg3中又重新打开吧?
可是在View中打开数据库后,在各个dlg却无法引用,不知怎么办才好
回复
akiy 2002-05-11
能不能在view类中定义一个成员,在任何地方都可以cframview pview=(cframview*)afxgetactiveview()获得视类指针然后在用pview->得到你的成员变量呀??
在dlg中定义一个指向crecordset的指针,直接通过对此指针副值来使用行么??
回复
researching 2002-05-10
我也是这样想的,可是CDaoDatabase和CDaoRecordSet对象在哪里申明呀?我觉得在dlg1\dlg2\dlg3中申明都不合适
回复
strip 2002-05-10
既然其他地方不要用到这些table, 那就在dlg1里面打开table1, dlg2->table2...

这样功能划分比较好,修改起来也方便
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2002-05-10 09:11
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……