简单问题

researching 2002-05-10 09:11:34
创建了一个基于CFrameWnd的工程,现在想在工程里使用数据库,用CDAO类来打开数据库,有几个dlg要用到各个不同的数据表,如有dlg1.dlg2,dlg3,分别用数据表table1,table2,table3,其中dlg1关闭时dlg2出现,dlg2关闭时dlg3出现。
请问在这种情况下数据库应该在哪儿打开最好?我在View中打开数据库,可是在各个dlg中却无法引用View
...全文
40 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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...

这样功能划分比较好,修改起来也方便

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

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