![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Какие компоненты лучше использовать для доступа к MS SQL ?
DmiSb © (2006-06-05 15:20:00)Нормально ли работают ADOExpress в Delphi7
Ega23 (2006-06-05 17:40:00) [21]
dataSet1, dataSet2 : TDataSet;
DataSource1, DataSource2 : TDataSource;
DBGrid1, DBGrid2 : TDBGrid;
DataSource1.DataSet:=DataSet1;
DBGrid1.DataSource:=DataSource1;
DataSet2.DataSource:=DataSource1;
DataSource2.DataSet:=DataSet2;
DBGrid2.DataSource:=DataSource2;
Still Swamp (2006-06-05 17:36:00) [22]
>
> А если тройная связка Master-Detail? На каждое - свой коннект?
> И как вообще такую связку при таком подходе организовать?
>
> Что-то не совсем представляю
Что имеется в виду мастер-детал?
Still Swamp (2006-06-05 17:35:00) [23]Детальнее что значит переполнен пул.
На локальной тачке?
Не встречал такого. У меня стоит робот билинг на АТС 700 внутренних номеров. Регулярно таким образом информирует базу о каждом действии абонента (сняли трубку, положили трубку, нажали кнопочку на аппарате, и проч тапишные сообщения) и ни про какие пулы не жалуется.
Ega23 (2006-06-05 17:33:00) [24]
> Что получаем при таком подходе. Отсутствие бороды из мертвых
> перегрузившихся пользователей. Гарантированное подключение
> без извратов, если пользователь вышел из зоны wifi, или
> выдрал хвост у машины. Или подменили сервер перенаправление
> dns или еще что. И все без хлопанья окошками... откройте
> закройте программу....
А если тройная связка Master-Detail? На каждое - свой коннект? И как вообще такую связку при таком подходе организовать?
Что-то не совсем представляю...
Ega23 (2006-06-05 17:31:00) [25]
> делай 'Select 1 as id' для проверки коннекта достаточно,
> результат тоже можно не проверять, только ждать эксепта.
>
Гм.. Мысль интересная. Оно же всё равно в рамках определённой базы будет идти...
Слушай, ну в очередной раз - спасибо! Это я не додумался...
saxon (2006-06-05 17:30:00) [26]То что соединение не может быть установленно, т.к. пул переполнен.
Это я к тому, что конечно надо > устанавливать соединение по надобности, но не без ума. :)
Still Swamp (2006-06-05 17:26:00) [27]Э... а....
Какие бяки меня ожидают? Конкретней. :)
saxon (2006-06-05 17:26:00) [28]
> Still Swamp (05.06.06 17:15) [12]
> Это забота SQLщиков... а они не жалуются.
А они и не будут жаловаться. Это в программе бяка вылезит, а сервер будет работать как и работал.
sniknik (2006-06-05 17:25:00) [29]Ega23 © (05.06.06 17:05) [9]
> 'Select top 1 id from susobjects'.
привлечение таблици... уже тормоза хоть и небольшие.
делай 'Select 1 as id' для проверки коннекта достаточно, результат тоже можно не проверять, только ждать эксепта.
Still Swamp (2006-06-05 17:15:00) [30]А с пулом соединений я не знаком. Это забота SQLщиков... а они не жалуются.
Still Swamp (2006-06-05 17:12:00) [31]Вот именно что ИМХО.
Соединение проходит при нормально рабочей сети за 0.025 сек. Так что 5 секунд думаю не кричино.
Что получаем при таком подходе. Отсутствие бороды из мертвых перегрузившихся пользователей. Гарантированное подключение без извратов, если пользователь вышел из зоны wifi, или выдрал хвост у машины. Или подменили сервер перенаправление dns или еще что. И все без хлопанья окошками... откройте закройте программу....
saxon (2006-06-05 17:09:00) [32]
> Still Swamp (05.06.06 16:57) [8]
> приконнектились, процедуру вызвали, отключились. И так далее.
А с пулом соединений что происходит?
Ega23 (2006-06-05 17:05:00) [33]
> На тот момент вышли из положения тем что приконнектились,
> процедуру вызвали, отключились. И так далее.
Ну это, ИМХО, изврат. В принципе, если обращение к базе редкая операция - можно и так реализовать. Но если очень часто... Просто само по себе создание подключения - дорогая штука. А когда бьёшься за миллисекунды - это совсем неприемлемо.
Вот как раз была задача недавно, нужно было отслеживать состояние связи с сервером, при этом информацию на экран выводить (нормальная картинка, либо "соединение разорвано").
Реализовал так: создаю отдельный поток, передаю в него ConnectionString, создаю в рамках этого потока свой экземпляр ADOConnection, соединяюсь и дальше начинаю каждые 5 секунд (параметр настраивается) пытаться выполнить запрос 'Select top 1 id from susobjects'.
Still Swamp (2006-06-05 16:57:00) [34]В смысле глюк был связан с тем что соединение уже установлено и держится за свет Alive.... по идее. Потом происходит любой exec и приходит исключение.
На тот момент вышли из положения тем что приконнектились, процедуру вызвали, отключились. И так далее.
Ega23 (2006-06-05 15:47:00) [35]
> Так же рекомендую как вариант устанавливать соединение по
> надобности.
>
В смысле?
Ega23 (2006-06-05 15:45:00) [36]
> Для Delphi5 Borland официально выпустила 2 обновления, которые
> касаются именно ADO. Вот мне и стало интересно как обстоят
> дела в Delhpi 7.
Насколько мне известно - проблем нет. Ни в D5, ни в D7. Хотя ADO на месте не стоит, может и для семёрки через какое-то время патч нужен будет... :о)
Still Swamp (2006-06-05 15:44:00) [37]Рекомендую ADO. Никаких проблем не замечено за долгое время.
Есть глюки у старых MDACов, связанные с поддержкой коннекта, но в последних версиях 2.8 SP1 исправлено. Так же рекомендую как вариант устанавливать соединение по надобности.
DmiSb (2006-06-05 15:42:00) [38]Я согласен выпрямить руки :)
Просто не хочеться сразу стукаться рожками в проблемы (ошибки при работе той же Delhpi, ADO). Для Delphi5 Borland официально выпустила 2 обновления, которые касаются именно ADO. Вот мне и стало интересно как обстоят дела в Delhpi 7.
Ega23 (2006-06-05 15:38:00) [39]
> "Нормально" - это в смысле глюков много или не очень ?
Мне вот интересно: а почему некоторые человеки начинают винить в глючности Delphi, ADO, C++ etc, вместо того, чтобы просто выпрямить руки?
DmiSb (2006-06-05 15:36:00) [40]"Нормально" - это в смысле глюков много или не очень ?