Главная страница
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.057 c
3-1098801119
nd
2004-10-26 18:31
2004.11.21
О Транзакциях и Кэшированных изменениях


1-1100122006
SkyNet
2004-11-11 00:26
2004.11.21
Чужая программа и её самовосстанавливающаяся переменная


1-1100020933
kooop
2004-11-09 20:22
2004.11.21
массив Edit- компонентов


8-1093165374
SNV-Soft
2004-08-22 13:02
2004.11.21
Поверхность TPanel в Bmp файл!?


8-1093180955
eg01st
2004-08-22 17:22
2004.11.21
Некорректная работа Image с прокруткой