Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проверка открытия базы на сервере [D7, ADS]


Страницы:   1 2

kyn66 ©   (2009-04-09 11:35:00) 

Уважаемые мастера, технология программы следующая.  Есть главная форма, есть  Data Module, в котором находится компонент TAdsConnection. выдержка из проекта

begin
 Application.Initialize;
 Application.Title := 'трям-трям';
 Application.CreateForm(TDM1, DM1);
 Application.CreateForm(TMainFrm, MainFrm);
 Application.Run;
end.


Содержимое DM

.......
procedure TDM1.DataModuleCreate(Sender: TObject);
begin
 AdsConnection1.Connect;
 if not AdsConnection1.IsConnected then
  begin
    ShowMessage('Not Connected');
    Application.Terminate;
  end;
end;

procedure TDM1.DataModuleDestroy(Sender: TObject);
begin
 AdsConnection1.Disconnect;
end;
....


В данном последнем коде я пытаюсь соедениться с БД, затем проверяю, произошло-ли действительно соединение. Путь к БД специально указываю неверный. Проходит некоторое время... База не открылась, точнее Connect не произошол, однако в режиме отладки следующая проверка AdsConnection1.IsConnectedпринимает значение True. Почему? Ведь при подключении произошла ошибка, точнее подключения не произошло. Следовательно прога идет выполняться дальше, открывается  главная форма, в которой происходит открытие таблиц и прочее. Тут-то и вылетает ошибка. Почему при проверке на подключение прога не вывалила Application.Terminate;?

Спасибо.


kyn66   (2009-04-09 12:35:00) [21]

В данном случае сервер - обчное файлохранилище. Подключение к БД происходит посредством компонента AdsConnection1.AdsServerTypes := Local (Advantage Database Server --> ADS) AdsConnection1.ConnectPath := "пишу всякую ерунду" , IsConnected получает значение True. Почему не понятно. Дело в том, что у этого компонента есть ряд событий, но нету типа onConnectError. Этим все усложняется.


Ega23   (2009-04-09 12:06:00) [22]

Всё некореектно. Блин, писАть очень много. Если вкртце:
1. Создал DM, проверил коннект, если не так, то главная форма НЕ СОЗДЁТСЯ.
2. Параметры коннект - логин, пароль пользователь должен иметь возможность ввести сам.
3. Не знаю, что такое TAdsConnection, но могу по опыту работы с другими DAC  предположить, что полная проверка валидности коннекта будет достигнута только тогда, когда у тебя пройдёт запрос к КОНКРЕТНОЙ БД на конкретном сервере под конкретной учётной записью. Т.е. сделать что-то типа select 1 и обернуть в try..except


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо