Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.058 c
1-1089534069
killer
2004-07-11 12:21
2004.07.25
Вызов одной формы из другой, которые находятся в одной DLL


1-1089478690
Delphi5.01
2004-07-10 20:58
2004.07.25
Prostoi vopros po povodu FileStream, CopyFrom! :-)


3-1088581515
Dina
2004-06-30 11:45
2004.07.25
Обзор на основе хранимой процедуры


1-1089636731
BillyJeans
2004-07-12 16:52
2004.07.25
FileExists();


14-1088965195
Интересующийся
2004-07-04 22:19
2004.07.25
DLL из EXE?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский