Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.08.16;
Скачать: [xml.tar.bz2];

Вниз

Не пойму сути компонентов а-ля TTransaction   Найти похожие ветки 

 
sniknik ©   (2009-06-13 15:51) [120]

> Указываешь асинхрон коннекту - ничего не виснет на экране
асинхрон коннекта это именно для коннекта... в локальной сети практически без разницы что использовать, в ней не бывает подключений по полторы минуты (пример).

> Даешь асинхрон команде - сервер рубится почти мгновенно, но виснет прога.
ждет ответа, а ответа на будет пока сервер не выполнит какую то неделимую часть запроса.
возможно глюк компонента.

> Где-то есть, наверное, решение, но пока вот не нашел..
асинхрон команде, а для ее остановки "глушить" коннект (active:= false).
должно получиться... и если получится смотри действия которые выполняются, для команды при закрытии коннекта в генофонде.

но вообще, при асинхронной работе с ADO не нужны свои потоки, т.е. асинхронность это и есть выполнение команд в доп. потоках, только созданных не вами, а самим ADO. если делаются свои, то их работа и внутренних ADO должна согласовываться. (что несколько проблематично, т.к. такой схемы не предусмотрено, а код объектов ADO закрыт)

> На каждый поток - свой коннешн и свой комманд
можно и один коннект в общем и "свой комманд" в каждом потоке (без асинхронности!), но тогда общий коннект будет ставить команды в общую очередь. т.е. будет не совсем то, что хочется, когда делаешь потоки, так?

в общем у ADO есть своя идеалогия (как и у транзакций в сабже и всего другого), и ее нужно соблюдать, или будут глюки.


 
Холивар   (2009-06-13 18:28) [121]


> PEAKTOP ©   (13.06.09 10:54) [115]
>
> > Только и в литературе по FireBird и в документации очень
>  не рекомендуется так делать
>
> Вы внимательно этот абзац прочитайте. Полностью прочитайте,
>  особенно тот момент, где описывается в каких имеено случаях.
>
>
> <OFFTOP>
> У нас в Украине уголовный кодекс наносить гражданам тяжкие
> телесные повреждения тоже не рекомендует делать. А в случаях
> необходимой самообороны при нападении - разрешает. А из
> жизненного опыт Вам скажу, что это не только можно делать,
>  но и нужно делать.
> =)
> </OFFTOP>


Я почему-то предпочитаю не доводить ситуацию до "нанесения тяжких телесных повреждений". Это гораздо проще, чем доказывать потом что именно ты прав.

Поэтому правило 1 поток - 1 коннект хорошо для любых ситуаций.


 
MsGuns ©   (2009-06-13 19:44) [122]

>sniknik ©   (13.06.09 15:51) [120]
>но вообще, при асинхронной работе с ADO не нужны свои потоки, т.е. >асинхронность это и есть выполнение команд в доп. потоках, только >созданных не вами, а самим ADO. если делаются свои, то их работа и >внутренних ADO должна согласовываться. (что несколько проблематично, >т.к. такой схемы не предусмотрено, а код объектов ADO закрыт)

В потоке не только посылается запрос и принимаются результаты - там еще выполняется обработка этих результатов, "упаковка" их в блоки данных. Главный лишь отображает результаты, периодически опрашивая потоки либо реагируя на их синхровызовы (в зависимости от указанного режима).
"Свой" коннект на поток обязателен, т.к. необходимо иметь возможность программно прерывать поток, корректно закрывая соединение. Если соединение одно для всех потоков, то при "прерванном" потоке может случиться блокировка таблиц на сервере.

>в общем у ADO есть своя идеалогия (как и у транзакций в сабже и всего >другого), и ее нужно соблюдать, или будут глюки.

Глюки можно преодолевать, но много надо морщиться. О чем я и писал, собственно



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

Форум: "Прочее";
Текущий архив: 2009.08.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.72 MB
Время: 0.016 c
15-1244755090
Германн
2009-06-12 01:18
2009.08.16
Вопрос к любителям смотреть кино в дороге.


2-1245675524
dmitry1991
2009-06-22 16:58
2009.08.16
составить Pattern(RegExp)


15-1245161138
@!!ex
2009-06-16 18:05
2009.08.16
Консолька роняет прилоэение на выходе.


2-1245310159
abhtr
2009-06-18 11:29
2009.08.16
Как распечатать текст из TMemo?


2-1245146560
Polkin
2009-06-16 14:02
2009.08.16
Assigned к объекту своего класса...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский