Форум: "Базы";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
ВнизСоединение к базе Найти похожие ветки
← →
homer (2004-06-28 12:26) [0]Здравствуйте,
У меня вопрос по работе с БД.
Кто как пишет программы:
1. Есть возможность объявить глобальную переменную например TADOConnection и везде использовать его
2. Есть возможность объявить TADOConnection как переменную класса(не класс формы), в конструкторе создать соединение, в деструкторе удалить и в каждом методе сслылаться на это поле для установления соединения
3. Создавать и удалять соединение в каждом методе класса
4. использовать традиционный подход, на каждую форму кидать свои компонентыи работать в коде формы, тогда получается сколько объктов DataBase или Table, то столько соединений..
Я тока позавчера начал Delphi постигать, направьте пож-ста, как лучше?
← →
Johnmen © (2004-06-28 12:32) [1]Попостигай ещё. Потом приходи...:)
← →
MORA (2004-06-28 12:50) [2]Обычно в проект добавляют TDataModule (ДМ), на него кидают все БД, таблицы,... и обращаются через этот датамодуль:
он находится в меню file>new>data module.
естественно, этот модуль надо включить в uses тех форм, из к-рых собираешься поиметь доступ к БД. Некоторые на ДМ кладут DataSource, чтобы не загромождать формы, но я ятак не делаю.
Вообще это всё очень хорошо описано в книге С.Тейксейра, К.Пачеко "Delphi X. Руководство разработчика". Я читал для 5 и 6 версии. Не лишним будет почитать все. Они есть в эл. варианте на www.williamspublishing.com
← →
Anatoly Podgoretsky © (2004-06-28 12:56) [3]1. Да
2. Да
3. Не является вопросом
4. Не является вопросом
← →
Курдль © (2004-06-28 13:06) [4]
> Обычно в проект добавляют TDataModule (ДМ), на него кидают
> все БД, таблицы,... и обращаются через этот датамодуль
Это для очень простых приложений, где 3-4 формы.
В проектах посложнее на ДатаМодуле оставляют компонент сессии (TDataBase) и парочку ДатаСэтов общего пользования (напр. для получения идентификаторов и т.п.). Остальные компоненты размещают на прочих формах или создают динамически по мере надобности.
← →
bushmen © (2004-06-28 13:13) [5]>Это для очень простых приложений, где 3-4 формы
А что, приложение в 3-4 формы не может быть сложным по сути? :))
← →
Курдль © (2004-06-28 13:17) [6]
> bushmen © (28.06.04 13:13) [5]
> А что, приложение в 3-4 формы не может быть сложным по сути?
> :))
А чё, мы будем заниматься досужим трепом? :)
Сложным по сути может быть приложение, вообще не имеющее форм.
Я имел в виду, что если в приложении есть несколько форм, создаваемых динамически (MDIChild, Modal и т.п.) то есть резон "держать" компоненты работы с наборами данных, относящимися к этим формам, на самих формах.
← →
bushmen © (2004-06-28 15:07) [7]>Я имел в виду, что если в приложении есть несколько форм, >создаваемых динамически (MDIChild, Modal и т.п.)
Вот это уже какая-то конкретика при ответе на вопрос, а "приложение в 3-4 формы" - это и есть досужий треп. :))
По мне, так лучше все в одном месте держать.
← →
Курдль © (2004-06-29 10:00) [8]
> bushmen © (28.06.04 15:07) [7]
> По мне, так лучше все в одном месте держать.
И как Вы себе представляете модуль данных с ~200 ДатаСэтами?
Их еще и именовать надо как-то осмысленно, в то время, как на отдельных формах ДатаСэты можно именовать однообразно, типа qEditor, qList, q
Кстати, а как тогда поддерживать объектное наследование? У меня простейшие операции с ДатаСэтами (получить параметр/открыть/проверить) прописаны в базовых формах, которые ступени на 4 выше окончательных.
← →
Val © (2004-06-29 10:39) [9]>Курдль © (28.06.04 13:06) [4]
Тогда просто не возникает необходимости в датамодуле, эти 3-5 компонентов можно положить на главную форму.
← →
Курдль © (2004-06-29 11:16) [10]
> Val © (29.06.04 10:39) [9]
> Тогда просто не возникает необходимости в датамодуле, эти
> 3-5 компонентов можно положить на главную форму.
Очень даже возникает. Приличные программы открывают свою главную форму и дают возможность поработать даже незарегистрированным пользователям (хэлп посмотреть, какие-то минимальные действия произвести). А уж если надо поработать по полной маме - вызывается в память окно логина, вызывается датамодуль и пошла работа.
← →
Anatoly Podgoretsky © (2004-06-29 11:24) [11]Курдль © (29.06.04 11:16) [10]
Приличные программы как минимум позволяют выполнить два действия
File|Exit
Help|Aboit
← →
Val © (2004-06-29 11:38) [12]>Курдль © (29.06.04 11:16) [10]
Извините, я не понял ваших аргументов. Я разве написал где-то что-то об окнах логина и коннектах без возможности смотреть About, скажем?
← →
Курдль © (2004-06-29 11:49) [13]Да о чем мы спорим? Я просто хотел в [10] пояснить свою мысль, что "проблемы надо решать по мере поступления". Т.е. вызывать ресурсы в память по мере надобности.
Если юзер запустил прогу, чтобы посмотреть About, почитать Help, а потом дать команду File/Exit, то зачем на вызываемой в этом случае главной форме будут болтаться ДатаБэйс и 3-5 ДатаСэтов?
← →
Danilka © (2004-06-29 13:15) [14][13] Курдль © (29.06.04 11:49)
> Если юзер запустил прогу, чтобы посмотреть About, почитать Help
Где ты видел юзера, который хелп читает, или эбаут открывает?
Разве-что, в эбаут картинку порнографическую засунуть..
:))
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.037 c