Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2010, 17:11   #1
ercartman
 
Регистрация: 26.04.2010
Сообщений: 7
По умолчанию Проверка подключения ADOConnection

Подключаюсь к MSSQL через ADOConnection. С базой работаю по сети.
Бывают обрывы связи.
Как проверить существует ли в данный момент соединение с базой?
ercartman вне форума Ответить с цитированием
Старый 30.08.2010, 17:13   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Переконнектится?
Или попинговать машину, где СУБД вращается.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.08.2010, 17:28   #3
ercartman
 
Регистрация: 26.04.2010
Сообщений: 7
По умолчанию

Пробую переконектиться после каждого действия.
Код:
ADOConnection1.Connected:=false;
ADOConnection1.Connected:=true;
ADOTable1.Active:=true;
ADOTable2.Active:=true;
на
Код:
ADOTable1.Active:=true;
выдает ошибку
[DBNETLIB][ConnectionWrite(send())]Общая ошибка сети. Обратитесь к документации по сети.
После второго обращения. Выдает ошибку:
Ошибка подключения.
И только после этого уже работает.
ercartman вне форума Ответить с цитированием
Старый 31.08.2010, 12:59   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Пробую переконектиться после каждого действия.
попробуй устанавливать соединение перед каждым действием
и разрывать связь после каждого действия
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 31.08.2010, 13:09   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
попробуй устанавливать соединение перед каждым действием
и разрывать связь после каждого действия
А я вообще бы посоветовал динамически создать подключение-получить набор- отсоединится:
Код:
var ado:TADOQuery;
begin
 ado:=TADOQuery.Create(nil);
 ado.ConnectionString:=...
 ado.SQL.Text:='Select ...
 ado.Open;

 while not ado.Eof do begin
  ... Получаем данные в некий массив
  ado.Next;
 end;
 ado.Free;ado:=nil;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.08.2010, 13:28   #6
ercartman
 
Регистрация: 26.04.2010
Сообщений: 7
По умолчанию

перед каждым действием делаю следующее
Код:
procedure TForm1.QueryActive(Var Sender: TADOQuery;SQL:string);
begin
conect; // тут разрываем и устанавливаем соединение adoconnection как написано выше
Sender.Active:=false;
Sender.SQL.Text:=SQL;
Sender.Active:=true;
end;
для ExecSQL такая же процедура
ercartman вне форума Ответить с цитированием
Старый 31.08.2010, 14:51   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
и разрывать связь после каждого действия
Код:
conect; // тут разрываем и устанавливаем соединение adoconnection как написано выше
Sender.Active:=false;
Sender.SQL.Text:=SQL;
Sender.Active:=true;
disconnect; //а теперь пока соединение еще жмво отключаем его
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПроВерка Подключения &RiU Общие вопросы Delphi 8 18.10.2011 05:45
проверка подключения к Интернет Noor Работа с сетью в Delphi 9 13.07.2011 01:44
Проверка наличия подключения к локальной сети nixstill Работа с сетью в Delphi 2 31.07.2009 23:49
Проверка подключения Shouldercannon Общие вопросы Delphi 4 11.08.2008 14:41
Проверка подключения к интернету badfilin Общие вопросы C/C++ 9 28.03.2008 02:27