Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
-5 / 0 / 1
Регистрация: 13.03.2014
Сообщений: 139

Повторный Запрос к БД

27.04.2016, 08:03. Показов 897. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

использую связку
Delphi
1
2
3
4
5
6
7
 with ADOquery1 do
        begin
         try
//
 except
 //                       
 end;
подскажите, как сделать в ЭТОЙ связке, что бы при не выполнении подключения к БД он повторно пробовал подключиться.

П.С. или есть более легкие и рациональные варианты?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.04.2016, 08:03
Ответы с готовыми решениями:

Повторный запрос в БД
Доброго времени суток. Существует запрос на добавление данных в бд. Каждый раз при обновлении страницы эти же данные дописываются к уже...

Повторный запрос
На php страничке есть форма, с которой по нажатию кнопки выполняется запрос, который добавляет в БД данные из формы. Обработка формы...

Requests повторный запрос
На сайте есть две формы, логин-пароль, код с почты. Отправляю пост запрос с data = логин, пароль. Потом мне надо делать другие действия ВНЕ...

11
5965 / 4541 / 1094
Регистрация: 29.08.2013
Сообщений: 28,151
Записей в блоге: 3
27.04.2016, 08:53
зачем ему подключаться к бд при НЕ выполнении?
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,659
Записей в блоге: 21
27.04.2016, 09:15
???

try
//
except
// вот тут подключиться к БД
end;
0
-5 / 0 / 1
Регистрация: 13.03.2014
Сообщений: 139
27.04.2016, 10:50  [ТС]
Цитата Сообщение от krapotkin Посмотреть сообщение
???

try
//
except
// вот тут подключиться к БД
end;
Спасибо, капитанам очевидности.
Имеется ввиду нужно сделать например Sleep(10000) и какойнить ретрай. и так пробовать до тех пор пока не подключиться


На вопрос "ЗАЧЕМ?":
Иногда бывает отваливается сетка. Вот нужно дождаться пока связь будет востановлена доступ получен и...
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,659
Записей в блоге: 21
27.04.2016, 11:08
если это делать так, то пользователи проклянут тебя ибо ты стопишь главный поток
и программа, так желающая сделать доброе дело, будет тупо снята через диспетчер задач
0
-5 / 0 / 1
Регистрация: 13.03.2014
Сообщений: 139
27.04.2016, 11:18  [ТС]
Цитата Сообщение от krapotkin Посмотреть сообщение
если это делать так, то пользователи проклянут тебя ибо ты стопишь главный поток
и программа, так желающая сделать доброе дело, будет тупо снята через диспетчер задач
У этой программы нету пользователя как такового. Она "он-лайн" выводит изменяющуюся информацию в БД. Соотвествнно если нет связи - нет других функций - ждем...

И так...есть какие то варианты?
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,659
Записей в блоге: 21
27.04.2016, 11:24
вариант собственно один

итак, программа в цикле обращается к базе
в какой-то момент соединение пропало
в этот момент происходит 2 вещи - 1)собственно исключение 2)connection.connected=false
следовательно если игнорировать исключение try-except
то перед обращением к БД нужно проверять состояние подключения и пытаться поднять его
если не поднимается - ничего не делаем, уходим на след. цикл

вот и все
и никаких слипов, сложных логик и заморозок приложения

ах да, на время попытки подключения программа тоже будет замерзать!
сам процесс подключения можно вынести в отдельный поток
тогда перед обращением к базе нужно будет еще проверить, не активен ли этот поток, потом есть ли подключение, и только потом обращаться
0
-5 / 0 / 1
Регистрация: 13.03.2014
Сообщений: 139
27.04.2016, 11:37  [ТС]
Цитата Сообщение от krapotkin Посмотреть сообщение
если не поднимается - ничего не делаем, уходим на след. цикл
Вариант не очень хороший в данной ситуации. (если я вас правильно понял)
Программа не просто Вытянула селектом всю базу и показала. Там идет расчеты, формулы, обработка. А если мы с базы ничего получили, то и следующий шаги уже будет проблемными. Т.к.там еще есть таймеры, которые тоже свою функцию выполняют.
Вообщем тут ни шагу вперед пока БД не подключиться.
т.е. может вначале сделать что то типа:

Delphi
1
while connection.connected=false do sleep()
такой вариант прокатит чтобы усыпить всю систему до ожидания сигнала от сети?
0
5965 / 4541 / 1094
Регистрация: 29.08.2013
Сообщений: 28,151
Записей в блоге: 3
27.04.2016, 13:02
все равно не понятно зачем постоянное подключение когда оно не нужно

в Firedac есть Ping - если есть ответ, то делаем то что нужно.
нет ответа - пишем в лог.
по таймеру запускаем каждые Х минут и все.

если сетка отвалилась во время выполнения запроса, то нужно использовать правильную обработку
1
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,659
Записей в блоге: 21
27.04.2016, 14:58
Цитата Сообщение от 2icER Посмотреть сообщение
while connection.connected=false do sleep()
никакая система и так не станет работать если подключения нет
зачем стопить ее так жестко???
везде просто нужно обрабатывать возможность отсутствия коннекта и не делать ничего соответственно
0
-5 / 0 / 1
Регистрация: 13.03.2014
Сообщений: 139
27.04.2016, 15:37  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
отвалилась во время выполнения запроса, то нужно использовать правильную обработку
Что Вы подразумеваете здесь под правильной обработкой?
0
5965 / 4541 / 1094
Регистрация: 29.08.2013
Сообщений: 28,151
Записей в блоге: 3
27.04.2016, 15:40
2icER,
отлов ошибок, транзакции, проверки
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.04.2016, 15:40
Помогаю со студенческими работами здесь

Повторный POST запрос в 1 сессии
Доброго дня! Подскажите, как в рамках 1 сессии кидать несколько POST запросов? Дело в том, что сначала надо кидать 1 пост запрос для...

Повторный запрос при обновлении страницы
При клике на ссылку выполняю запрос, при обновлении страницы он отправляется повторно, как этого избежать. <%:...

Повторный запрос ввода при ошибке
При вводе не верного числа все норм, при вводе символа - выводится "Вы ошиблись." и не запрашивается второй раз ввод. ...

Обеспечение правильности ввода через повторный запрос
нужно сделать так, чтобы когда вводишь букву выдавало ошибку и просило повторить ввод #include <conio.h> ...

Повторный запрос от браузера при написании чата
Здравствуйте, вопрос по node.js. Я пишу чат (в целях саморазвития) методом long-polling. Но браузер, если не получает ответ, автоматически...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru