Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.25;
Скачать: CL | DM;

Вниз

Соединение к базе   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.059 c
1-1089700940
MisteRR
2004-07-13 10:42
2004.07.25
Word.Application


1-1089624841
glGLU
2004-07-12 13:34
2004.07.25
Form1.Destroy???


1-1089725392
Newuser
2004-07-13 17:29
2004.07.25
Разрешение экрана


3-1088533323
Alexey
2004-06-29 22:22
2004.07.25
Какую лучше использовать БД на 5 клиентов и не более 10000 записе


6-1085245111
Игорь Н.
2004-05-22 20:58
2004.07.25
Как обратится к web странице не используя Internet Explorer