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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2014, 09:30   #1
STRELOK-2007
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 144
Вопрос Соединение с БД (конкретно UniDAC)

Приветствую!

Пишу что-то вроде серверного приложения, для работы с некоторыми устройствами и добавление информацию в БД.

Вопрос встал вот в чем:

При старте приложения, создается подключение к бд (MySQL, SQL Server или другой вариант). Все работает хорошо.

Но на сколько целесообразно держать соединение открытым? Не могут ли возникнуть проблемы с, например, разрывом соединения спустя час работы? Или это как-то UniDAC сам решает?

Я думаю, может быть стоит самому разрывать соединение, если, скажем, 20 минут не поступало никаких запросов? А при получении такового - проверять соединение (разорванное мною или как-то само) и соединять заново.
Но тут фишка в чем, этот "стартовый" запрос будет занимать куда больше времени, хотя это не критично, запросов, ну крайский край будет 1 в минуту.

Заранее спасибо!
STRELOK-2007 вне форума Ответить с цитированием
Старый 30.07.2014, 09:34   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Как по мне соединение отслеживать вообще не надо.
Этим провайдер СУБД пусть занимается.
Я не знаю как Юнидак работает, но допустим по аналогии с ADO - надо получить результат запрос - открыл набор - работаешь с результатом. Работай с них хоть до второго пришествия. Сервер если не ляжет будет держать сессию для твоего соединения открытую. И ИМХО волноваться про открытый канал не стоит. Даже при падении программы или сервера сессия скорее всего завершится при разрыве соединения.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.07.2014, 11:20   #3
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

например с ораклом, если не обработать разрыв связи, то приложение придется перезапускать.
а так если подключений будет не много, то нет смысла разрывать, лучше просто проверять, подключен ли к бд (простой uniconnection.connected) перед запросом
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 30.07.2014, 13:17   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
например с ораклом, если не обработать разрыв связи, то приложение придется перезапускать.
Да это с любой СУБД )
и тут дело не в подключении, а в механизме самого клиента. Просто получается ПО так написано непродуманно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.07.2014, 17:05   #5
STRELOK-2007
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 144
По умолчанию

ПО по сути на стадии проектирования и есть, готово только процентов на 30 (до адекватной бета-версии).

Так вот. Никакими датасетами я не пользуюсь. Использую только: Connection, Provider(s), SQL и Query (редко, примерно в 5% случаев, когда без чтения данных - новые данные не добавишь).

Запросы генерю сам. В основном это INSERT или INSERT ON DUBLICATE KEY UPDATE.

Такие дела...
STRELOK-2007 вне форума Ответить с цитированием
Старый 30.07.2014, 17:21   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Никакими датасетами я не пользуюсь
И тут же - Query, он же датасет. Забавно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.07.2014, 01:45   #7
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,777
По умолчанию

Цитата:
Сообщение от STRELOK-2007 Посмотреть сообщение
Я думаю, может быть стоит самому разрывать соединение, если, скажем, 20 минут не поступало никаких запросов?
Это наверняка в веб-программировании вас научили плохому. Отучайтесь.
Vapaamies вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Документация на русском по UniDAC Muramidaza БД в Delphi 0 21.03.2014 00:35
Работа Edit и Post в UniDAC Muramidaza БД в Delphi 3 04.03.2014 20:43
UniDAC, сообщения об ошибках serpan БД в Delphi 6 23.10.2013 23:26
SQL запрос (UniDac) Prontit БД в Delphi 2 17.08.2011 09:03
После установки VS2010 и запуска моего проекта появилась проблема..., Конкретно с WMPLib. Casper-SC Общие вопросы .NET 1 23.05.2010 15:12