|
|
|
Junior Member
      
участник
Last Login: 16.07.2001 13:12
Сообщ.: 10,
Visits: 111
|
|
я делаю MDI приложение с использованием БД
мне нужно чтобы при запуске открывалась БД (CDatabase) а потом все формы использовали бы эту БД, чтобы не соединяться кажный раз при открытии новой формы
Но вот вопрос где хранить эту переменную?
я пробовал в главном приложении и инициализировал её в InitInstance -получается НО может быть можно как-то лучше это делать и по другому А КАК? помогите пожалуста
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 10.11.2008 0:08
Сообщ.: 1 298,
Visits: 12 501
|
|
Я бы порекомендовал следовать идеологии Document/View от Microsoft/MFC. То есть хранить ее в CMyAppDocument или как там оно называется (класс, производный от CDocument)...
С уважением, Владимир.
|
|
|
|
|
Junior Member
      
участник
Last Login: 16.07.2001 13:12
Сообщ.: 10,
Visits: 111
|
|
Дело в том что я делаю приложение MDI
и хочу, чтобы оно было доступно для всех представлений. Это возможно, если хранить его в объекте документе как вы говорите?
как я уже сказал я пробовал его хранить в объекте-приложении (и вытаскиваю (МоёПриложение*)AfxGetApp()->МояПеременная) и это работает.
НО меня интересует может это можно сделать как-то правильнее и лучше??
Кто может ответить на этот вопрос?
|
|
|
|
|
Forum Member
      
участник
Last Login: 19.07.2002 20:29
Сообщ.: 27,
Visits: 298
|
|
A to, chto skazal boombastik - ochen' dazhe pravilno. Ne nado izobretat' velosiped.
KYG.
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 10.11.2008 0:08
Сообщ.: 1 298,
Visits: 12 501
|
|
На самом деле MDI - Multi-Document Interface. Это подразумевает, что в этом приложении существует возможность ОДНОВРЕМЕННОГО открытия множества документов. В вашем же случае, если к примеру за документ взять БД, получается упрощенная модель MDI, но это не мешает использовать все ту же модель от MFC - Document/View. Пусть у вас будет один документ с настройками и объектом CDatabase (проще кстати будет скидывать эти настройки в файл...). Вам остается только связать все создаваемые представления (наследников CChildView) с активным документом...
По моему должно работать замечательно, это получается как бы множество взглядов на одну и ту же ... проблему ;)
Хотя с другой стороны - Вы разработчик, Вам и флаг в руки - начальству ведь все равно, что внутри лишь бы работало...
Удачи, Владимир.
|
|
|
|
|
Forum Member
      
участник
Last Login: 15.03.2007 17:40
Сообщ.: 40,
Visits: 396
|
|
И так работает тоже: В StdAfx.h определяешь extern CString dbname;
А в классе CXXXApp: CString dbname;
И дальше эта переменная становится глобальной и появляется в папке Globals С уважением, Виталий
|
|
|
|
|
Junior Member
      
участник
Last Login: 16.07.2001 13:12
Сообщ.: 10,
Visits: 111
|
|
Я понял вас Владимир.
Но тогда другой вопрос: В MDI приложении две разные формы(представления) могут одно временно работать с одним документом?
Если могут то как это делается? -Как обычно присоеденяются шаблоны в InitInstance или как-то особенно?
|
|
|
|