Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Соединение к базе


homer ©   (2004-06-28 12:26:00) 

Здравствуйте,
У меня вопрос по работе с БД.
Кто как пишет программы:
1. Есть возможность объявить глобальную переменную например TADOConnection и везде использовать его
2. Есть возможность объявить TADOConnection как переменную класса(не класс формы), в конструкторе создать соединение, в деструкторе удалить и в каждом методе сслылаться на это поле для установления соединения
3. Создавать и удалять соединение в каждом методе класса
4. использовать традиционный подход, на каждую форму кидать свои компонентыи работать в коде формы, тогда получается сколько объктов DataBase или Table, то столько соединений..
Я тока позавчера начал Delphi постигать, направьте пож-ста, как лучше?


Danilka   (2004-06-29 13:15:00) [1]

[13] Курдль ©   (29.06.04 11:49)

> Если юзер запустил прогу, чтобы посмотреть About, почитать Help

Где ты видел юзера, который хелп читает, или эбаут открывает?
Разве-что, в эбаут картинку порнографическую засунуть..
:))


Курдль   (2004-06-29 11:49:00) [2]

Да о чем мы спорим? Я просто хотел в [10] пояснить свою мысль, что "проблемы надо решать по мере поступления". Т.е. вызывать ресурсы в память по мере надобности.
Если юзер запустил прогу, чтобы посмотреть About, почитать Help, а потом дать команду File/Exit, то зачем на вызываемой в этом случае главной форме будут болтаться ДатаБэйс и 3-5 ДатаСэтов?


Val   (2004-06-29 11:38:00) [3]

>Курдль ©   (29.06.04 11:16) [10]
Извините, я не понял ваших аргументов. Я разве написал где-то что-то об окнах логина и коннектах без возможности смотреть About, скажем?


Anatoly Podgoretsky   (2004-06-29 11:24:00) [4]

Курдль ©   (29.06.04 11:16) [10]
Приличные программы как минимум позволяют выполнить два действия
File|Exit
Help|Aboit


Курдль   (2004-06-29 11:16:00) [5]


> Val ©   (29.06.04 10:39) [9]
> Тогда просто не возникает необходимости в датамодуле, эти
> 3-5 компонентов можно положить на главную форму.

Очень даже возникает. Приличные программы открывают свою главную форму и дают возможность поработать даже незарегистрированным пользователям (хэлп посмотреть, какие-то минимальные действия произвести). А уж если надо поработать по полной маме - вызывается в память окно логина, вызывается датамодуль и пошла работа.


Val   (2004-06-29 10:39:00) [6]

>Курдль ©   (28.06.04 13:06) [4]
Тогда просто не возникает необходимости в датамодуле, эти 3-5 компонентов можно положить на главную форму.


Курдль   (2004-06-29 10:00:00) [7]


> bushmen ©   (28.06.04 15:07) [7]
> По мне, так лучше все в одном месте держать.

И как Вы себе представляете модуль данных с ~200 ДатаСэтами?
Их еще и именовать надо как-то осмысленно, в то время, как на отдельных формах ДатаСэты можно именовать однообразно, типа qEditor, qList, q
Кстати, а как тогда поддерживать объектное наследование? У меня простейшие операции с ДатаСэтами (получить параметр/открыть/проверить) прописаны в базовых формах, которые ступени на 4 выше окончательных.


bushmen   (2004-06-28 15:07:00) [8]

>Я имел в виду, что если в приложении есть несколько форм, >создаваемых динамически (MDIChild, Modal и т.п.)

Вот это уже какая-то конкретика при ответе на вопрос, а "приложение в 3-4 формы" - это и есть досужий треп. :))

По мне, так лучше все в одном месте держать.


Курдль   (2004-06-28 13:17:00) [9]


> bushmen ©   (28.06.04 13:13) [5]
> А что, приложение в 3-4 формы не может быть сложным по сути?
> :))

А чё, мы будем заниматься досужим трепом? :)
Сложным по сути может быть приложение, вообще не имеющее форм.
Я имел в виду, что если в приложении есть несколько форм, создаваемых динамически (MDIChild, Modal и т.п.) то есть резон "держать" компоненты работы с наборами данных, относящимися к этим формам, на самих формах.


bushmen   (2004-06-28 13:13:00) [10]

>Это для очень простых приложений, где 3-4 формы

А что, приложение в 3-4 формы не может быть сложным по сути? :))


Курдль   (2004-06-28 13:06:00) [11]


> Обычно в проект добавляют TDataModule (ДМ), на него кидают
> все БД, таблицы,... и обращаются через этот датамодуль

Это для очень простых приложений, где 3-4 формы.
В проектах посложнее на ДатаМодуле оставляют компонент сессии (TDataBase) и парочку ДатаСэтов общего пользования (напр. для получения идентификаторов и т.п.). Остальные компоненты размещают на прочих формах или создают динамически по мере надобности.


Anatoly Podgoretsky   (2004-06-28 12:56:00) [12]

1. Да
2. Да
3. Не является вопросом
4. Не является вопросом


MORA   (2004-06-28 12:50:00) [13]

Обычно в проект добавляют TDataModule (ДМ), на него кидают все БД, таблицы,... и обращаются через этот датамодуль:
он находится в меню file>new>data module.
естественно, этот модуль надо включить в uses тех форм, из к-рых собираешься поиметь доступ к БД. Некоторые на ДМ кладут DataSource, чтобы не загромождать формы, но я ятак не делаю.
Вообще это всё очень хорошо описано в книге С.Тейксейра, К.Пачеко "Delphi X. Руководство разработчика". Я читал для 5 и 6 версии. Не лишним будет почитать все. Они есть в эл. варианте на www.williamspublishing.com


Johnmen   (2004-06-28 12:32:00) [14]

Попостигай ещё. Потом приходи...:)


Наверх

Титульная страница Поиск, карта сайта Написать письмо