Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: СУБД и Delphi/Lazarus

  Все выпуски  

RusFAQ.ru: СУБД и Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / СУБД и Delphi

Выпуск № 296
от 27.03.2007, 09:05

Администратор:Gh0stik
В рассылке:Подписчиков: 302, Экспертов: 41
В номере:Вопросов: 1, Ответов: 4


Вопрос № 79213: Добый день, подскажите как проверить при старте приложения его соединение с базой(Interbase). Бо если соединение отсутствует программа мягко говоря вылетает.... Заранее благодарен. Ипользую IBDatabase, IBQuery...

Вопрос № 79.213
Добый день, подскажите как проверить при старте приложения его соединение с базой(Interbase). Бо если соединение отсутствует программа мягко говоря вылетает....
Заранее благодарен.
Ипользую IBDatabase, IBQuery
Отправлен: 21.03.2007, 12:14
Вопрос задал: Яковлев Евгений (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Korolyov Alexandr
Здравствуйте, Яковлев Евгений!
А почему бы не использовать исключения, при работе с базами данных они очень помогают.
---------
Читайте help
Ответ отправил: Korolyov Alexandr (статус: 3-ий класс)
Ответ отправлен: 21.03.2007, 12:25

Отвечает: Igor_
Здравствуйте, Яковлев Евгений!

Узнать подключена БД или нет можно через свойство IBDatabase.Connected.

Соединение с БД я обычно делаю примерно так:
В design time делаю IBDatabase.Connected = false;

При запуске приложения (допустим в onShow главной формы) читаю параметры подключения (допустим из ini файла), а после этого уже подключаюсь к БД.

Типа такого:
IBDatabase.Close();
IBDatabase.DatabaseName = 'Тут пишем путь к БД';
// задаем параметры подключения
IBDatabase.Params->Clear();
IBDatabase.Params.Add('lc_ctype=WIN1251');
IBDatabase.Params.Add('user_name='+UserName);
IBDatabase.Params.Add('password='+Password);
// подключаемся к БД
IBDatabase.Open();

Надеюсь, что ответил в тему..

Ответ отправил: Igor_ (статус: 1-ый класс)
Ответ отправлен: 21.03.2007, 12:31
Оценка за ответ: 5
Комментарий оценки:
благодарен за помощ!!!

Отвечает: sir henry
Здравствуйте, Яковлев Евгений!
если соединение отсутствует, то Вы его должны установить. От отсутствия соединения программа не должна вылетать.
Наверное Вы имели в виду, что Ваша программа вылетает, если соединение с БД установить не удалось. В этом случае Вы должны использовать Try .. Except:

Try
IBDatabase.Open;
Except
MessageBox(0, PChar('Не удалось открыть базу данных: '+IBDatabase.DatabaseName), 'О, ужас...', MB_ICONSTOP+MB_OK);
End;

Если базу данных не удалось открыть методом Open, то выдается соответствующее сообщение и программа не вылетает. Естественно, при этом Вам нужно предусмотреть действия, которые должен сделать пользователь, если открыть БД не удалось.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 21.03.2007, 13:35
Оценка за ответ: 5

Отвечает: Yumata
Здравствуйте, Яковлев Евгений!
if not MainIBDatabase.TestConnected then...
---------
Кто хочет - найдет способ!
Ответ отправил: Yumata (статус: 1-ый класс)
Ответ отправлен: 21.03.2007, 13:38


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.46 от 18.03.2007
Яндекс Rambler's Top100

В избранное