18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
|
|
1 | |
Как проверить, есть ли подключение к БД при запуске приложения?10.11.2012, 14:22. Показов 12300. Ответов 17
Метки нет (Все метки)
Проверять при крите главной формы, разумеется нельзя, т.к. datamodule запускается первым, иначе будет Access Volation...
Т.е. получается нужно проверять было ли соединение с базой в крите DataModule ? Так и делаю. Если нет соединения, тогда мне нужно открыть опендиалог и выбрать где же находится нужная база данных. Но трабл в том, что опендиалога нету в datamodule, т.к. он используется для доступа к данным и только. Замкнутый круг У кого какие идеи, кто что подскажет?
0
|
10.11.2012, 14:22 | |
Ответы с готовыми решениями:
17
Невозможно проверить издателя при запуске приложения Лаги при запуске игр, если есть подключение к Интернет. Ноутбук Как проверить есть ли подключение к интернету? Как сделать при запуске приложения выделенный текст(как на фото), при нажатии кнопки как на фото2 |
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
|
|
10.11.2012, 14:37 | 2 |
Не используйте DataModule. Просто разместите нужные компоненты на форме, включая OpenDialog и в обработчике формы OnCreate проверяйте
0
|
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
|
|
10.11.2012, 15:14 [ТС] | 3 |
droider, да я бы с радостью, но уже весь проект написан с его использованием. И перелопачивать весь код - не успею.
0
|
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
|
||||||
10.11.2012, 15:20 | 4 | |||||
Или можно сделать так при использовании DataModule
Form1 - это имя формы, на которой расположен компонент OpenDialog
1
|
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
|
|
10.11.2012, 15:22 [ТС] | 5 |
Ок. Далее включать каждый Tquery в истину? Ибо при установке коннекта в истину, все Tquery скинутся в фолс...
Добавлено через 34 секунды это можно было не писать и так ясно.
0
|
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
|
||||||
10.11.2012, 15:31 | 6 | |||||
Лучше так
Добавлено через 2 минуты У тебя данные при подключении к базе сразу выводятся по запросу?
1
|
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
|
|
10.11.2012, 15:34 [ТС] | 7 |
Зачем отлавливать ошибку, если можно проверить свойство connected у ADOConnection, если не подключено, тогда и вывести опендиалог., иначе условие не выполняется и все.?
хмм... мб это для того, чтобы небыло вывода системной ошибки, что бд не найдена? Добавлено через 1 минуту Да, т.е. выборку прописал в свойстве sql, а далее поставил active := true и вывожу через datasource в Dbgrid
0
|
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
|
|
10.11.2012, 15:44 | 8 |
Добавлено через 2 минуты Если данные после подключения к базе сразу выводятся запросом, то да, активируй один Query с твоим запросом, но не все сразу
0
|
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
|
|
10.11.2012, 19:13 [ТС] | 9 |
Значит правильно понял.
Еще на вопрос по дельфи ответить сможете? Добавлено через 2 минуты а надо, все. Иначе те которые не активировал, не будут выдавать записи в необходимые мне гриды (а их много). Добавлено через 3 часа 23 минуты Фишка бы прокатила, если Form1 была бы запущена перед datamodule. Но у меня сначала datamodule, а потом уже все остальное. Access Violation ... Собственно, все верно, т.к. достать из не созданного Form1 диалог никак не получится(сначала DataModule). Как быть?
0
|
0 / 0 / 0
Регистрация: 19.01.2018
Сообщений: 162
|
||||||
23.01.2018, 22:33 | 10 | |||||
Вопрос, если у меня например
0
|
3586 / 2195 / 693
Регистрация: 29.05.2013
Сообщений: 9,376
|
|
26.01.2018, 00:13 | 12 |
Концепция изначально неверная. На кой бес в датамодуль помещать открытие базы данных? Датамодуль сделан только для удобного размещения в одном месте компонент доступа к БД. Если процесс подключения к БД у вас затянется или завершится неудачей вы же выдадите пользователю оконное сообщение об ошибке, т.е. придется подключать те самые визуальные компоненты, которых в датамодуле нет, зато есть в форме. Кроме того наличие диалога выбора БД предполагает некий минимальный визульный интерфейс вызова этого самого диалога.
0
|
26.01.2018, 09:31 | 14 |
ух сколько советов
а концептуально не пробовали подходить? с т.з. правильности кода, разделения логики и прочей муры изначально никогда ничего не должно быть подключено при старте программы обычно считываются настройки, в т.ч. и настройки подключения к БД эти настройки передаются методу, который пытается подключиться. результаты используются там, где этот метод был вызван а открытие датасетов уж тем более нужно проводить отдельно, в другом методе, потому что нужно открывать то что нужно именно в данный момент, а не все подряд, как это любят созидатели форм1 форм2 ... форм74 так что в datamodule.OnCreate нечего делать процедуре подключения скорее всего там вообще нечего делать примерный разбор старта программы я описывал тут https://www.cyberforum.ru/blog... g4884.html
0
|
10 / 12 / 2
Регистрация: 01.09.2015
Сообщений: 105
|
|
26.01.2018, 17:52 | 15 |
А не проще ли проверить подключение не при создании формы, а при её показе? OnShow как бы есть.
0
|
3586 / 2195 / 693
Регистрация: 29.05.2013
Сообщений: 9,376
|
|
26.01.2018, 18:51 | 16 |
0
|
1134 / 615 / 129
Регистрация: 13.02.2009
Сообщений: 3,554
|
|||||||||||
26.01.2018, 23:10 | 17 | ||||||||||
Да проще . Я например
1) Все параметров сохранил в .ini файле 2) создал метод - процедур
0
|
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
|
|
27.01.2018, 18:35 | 18 |
0
|
27.01.2018, 18:35 | |
27.01.2018, 18:35 | |
Помогаю со студенческими работами здесь
18
Как проверить, есть ли у приложения доступ в ту или иную папку? Как реализовать заставку приложения при её запуске? Как отключить клавиатуру при запуске приложения Как включить GPS при запуске приложения? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |