Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ADOConnection проверка подключения 
V
    Опции темы
LexuSS
Дата 17.11.2009, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 12.10.2007

Репутация: нет
Всего: нет



Пишу программу для работы с базами данных, основная база SQL-сервер (по умолчанию) и дополнительная база в Аccess. Если сервер не доступен то работать программа должна с локальной базой.
Как проверить что SQL-сервер не доступен?
PM MAIL   Вверх
Данкинг
Дата 17.11.2009, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Ошибку подключения отловить, видимо.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 17.11.2009, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Возможно, что есть событие OnDisconnect или OnLostConnect в компонентах доступа.
PM MAIL   Вверх
cemick
Дата 17.11.2009, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 6.7.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 6



Выполнить какойнибудь простейший запрос что то типо 

Код

select 1 as id from dual 


в блоке try except end
PM MAIL WWW   Вверх
Akella
Дата 17.11.2009, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



cemick, а если в базе не будет такой таблицы или ещё что-нибудь? Лучше отлавливать именно событие потери соединения.
PM MAIL   Вверх
LexuSS
Дата 18.11.2009, 07:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 12.10.2007

Репутация: нет
Всего: нет



Мне нужно узнать возможно ли такое соединение или нет до его установки
PM MAIL   Вверх
Акимыч
Дата 18.11.2009, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 4.6.2006
Где: Владимир

Репутация: 1
Всего: 1



Код

procedure TLoginForm.btnServerListRefreshClick(Sender: TObject);
var
  dmo: Variant;
  i: Integer;
begin
  try
    Screen.Cursor:= crHourGlass;
    dmo:=CreateOleObject('SQLDMO.Application');
    for i:=0 to dmo.ListAvailableSQLServers.Count do
      if (Length(trim(dmo.ListAvailableSQLServers.Item(i))) > 0) and
        (CompareText(AnsiUpperCase(dmo.ListAvailableSQLServers.Item(i)),'(LOCAL)')<>0) then
          cbbServerName.Items.Add(AnsiUpperCase(dmo.ListAvailableSQLServers.Item(i)));
    Screen.Cursor:= crDefault;
  except
    on e: Exception do
    begin
      Application.MessageBox(PChar('Нет доступа к SQL-серверу. Обратитесь к администратору.'),'Обновление списка серверов',48);
      ErrLOG('TLoginForm.btnServerListRefreshClick',e.Message,'','',Sender);
      Screen.Cursor:= crDefault;
    end;
  end;
end;


возвращает список доступных для подключения в сети серверов
PM MAIL   Вверх
former
Дата 18.11.2009, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



Цитата(LexuSS @  18.11.2009,  07:35 Найти цитируемый пост)
Мне нужно узнать возможно ли такое соединение или нет до его установки 

А почему не использовать конструкцию try ... except ... end при подключении.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
LexuSS
Дата 18.11.2009, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 12.10.2007

Репутация: нет
Всего: нет



Акимыч, Спасибо, давно хотел что нибудь подобное написать!
Всё заработало.
PM MAIL   Вверх
Акимыч
Дата 19.11.2009, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 4.6.2006
Где: Владимир

Репутация: 1
Всего: 1



LexuSS, да не за что, тока вопрос отметь как решенный!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1227 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.