Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.21;
Скачать: CL | DM;

Вниз

TOleException: ошибка подключения   Найти похожие ветки 

 
yg ©   (2004-10-26 10:18) [0]

Для получения данных с MS SQL Server 2000 пользуюсь следующим кодом:
SrvSet: TADODataSet;

...

if SrvSet.Active then SrvSet.Close;
SrvSet.CommandText := "select * from customers";
SrvSet.Open;
....
SrvSet.Close;


Похожие куски разбросаны по всей программе.
Возникла следующая проблема: Если сервер остановить, то все экземпляры программы, пытающиеся подключиться к серверу обламываются с сабжем. Но после того, как сервер снова будет запущен, данное исключение не исчезает, пока не перезапустишь саму программу. Соответственно все данные накопленные в этом сеансе работы программы невозможно сохнанить на сервере.


 
Johnmen ©   (2004-10-26 10:23) [1]

Копить не надо.


 
yg ©   (2004-10-26 10:32) [2]

Человек вбивает анкету. Не могу же я незаполненную до конца анкету через каждые 5 секунд сливать на сервер...


 
Johnmen ©   (2004-10-26 10:36) [3]

1. Учитывать текущую доступность выполнения запросов.
2. Обрабатывать ошибки.
3. Иметь возможность повторить сохранение "накопленных данных".


 
yg ©   (2004-10-26 10:48) [4]

>>1. Учитывать текущую доступность выполнения запросов.
А можно кусочек кода, который это демонстрирует.

>>3. Иметь возможность повторить сохранение "накопленных данных".
Собственно проблема именно в последнем пункте!!!
Еще раз:
1 шаг. Сервер остановлен. Пробуем обратиться: Облом. Понятно.
2 шаг. Сервер работает. Еще раз пробуем обратиться: Облом по той же причине!
Мне так кажется, что где-то в буфере или коллекции ошибок соединения осталась информация об ошибке. Этот буфер не очищается. И ошибка эта будет повторяться до посинения, пока не перезапустишь программу.


 
Johnmen ©   (2004-10-26 10:53) [5]

1. try <выполнить запрос> except <отключаемся> end
  ...
  try <подключиться,выполнить запрос>
  except <...>
  end

Вобщем все обломы надо обрабатывать самому...


 
yg ©   (2004-10-26 10:58) [6]

Хорошо, а по самому вопросу: как победить?


 
Johnmen ©   (2004-10-26 11:00) [7]

Конкретизируй вопрос.


 
yg ©   (2004-10-26 11:07) [8]

ЕЩЕ РАЗ:
1 шаг. Сервер остановлен. Пробуем обратиться:
На Set1.Open возникает исключение:
TOleException: ошибка подключения
2 шаг. Сервер работает. Еще раз пробуем обратиться: Исключение повторяется, хотя причины для него исчезли. Вопрос: ПОЧЕМУ?

PS: Если что-то непонятно в постановке вопроса, задавайте дополнительные вопросы.


 
Johnmen ©   (2004-10-26 11:14) [9]

После первого шага (обработав исключение) надо отключиться (Close коннекта)
На втором - сначала подключиться, а потом повторить попытку (обрабатывая исключения)

>Вопрос: ПОЧЕМУ?

Т.е. почему причины исчезли ? :)))


 
stone ©   (2004-10-26 11:15) [10]


> yg ©  

А с какого перепуга у тебя сервер периодически останавливается? Может лучше эту проблему решить?


 
yg ©   (2004-10-26 11:39) [11]

>Johnmen
Я привел упрощенный код, а так я конечно обрабатываю исключения. Но проблема-то не исчезает. Вы попробуйте смоделировать - увидите сами.
>stone
Я не администратор, а программист. А вот люди, которые за тем компом сидят, очень любят его перегрузить и хотят, чтобы потом все работало :)))


 
Johnmen ©   (2004-10-26 11:50) [12]

>yg ©   (26.10.04 11:39) [11]

Дело в большей степени в Close/Open коннекта.
Да и зачем мне моделировать, если у меня все проекты работают...:)


 
yg ©   (2004-10-26 11:56) [13]

>Дело в большей степени в Close/Open коннекта.
Правда??? А я-то думал, где же проблема-то...
>Да и зачем мне моделировать, если у меня все проекты работают...:)
Слушай, а что ты тогда здесь выступаешь, раз помочь не хочешь, иди в "Просто треп" и там болтай ерундой.


 
Vlad ©   (2004-10-26 12:02) [14]


> yg ©   (26.10.04 11:56) [13]

А чего ты хочешь? Если сервак упал, то коннект (который ты до этого открыл) уже мертвый. Даже если сервак снова заработал, коннект от этого живее не станет.
Поэтому тебе и говорят, что при эксепшене, нужно заново коннектиться к серверу, а ты похоже толи слушать не хочешь, толи проблему нормально объяснить не можешь.



Страницы: 1 вся ветка

Текущий архив: 2004.11.21;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.03 c
1-1099685715
Piter
2004-11-05 23:15
2004.11.21
а какой тип вызова у .NET библиотек?


14-1099564515
Ozone
2004-11-04 13:35
2004.11.21
Учимся писать документацию


6-1094827738
redlord
2004-09-10 18:48
2004.11.21
перевод IP адреса в десятичную систему


4-1097340955
Sergeika
2004-10-09 20:55
2004.11.21
Изменение яркости монитора


1-1099554178
kirilllius
2004-11-04 10:42
2004.11.21
Курсор