Вопрос № 79213: Добый день, подскажите как проверить при старте приложения его соединение с базой(Interbase). Бо если соединение отсутствует программа мягко говоря вылетает....
Заранее благодарен.
Ипользую IBDatabase, IBQuery...
Вопрос № 79.213
Добый день, подскажите как проверить при старте приложения его соединение с базой(Interbase). Бо если соединение отсутствует программа мягко говоря вылетает....
Заранее благодарен.
Ипользую IBDatabase, IBQuery
Отвечает: 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