Сайт Koder.kz сайт для Delphi программистов.

koder.kz

Web or desctop App Developer

Написать

Поговорим сегодня про компоненты для Embarcadero RAD Delphi, а именно о ODAC – oracle data access components. Если быть точней, то об одной их плюшке – многопоточности.

А что это? Как это реализовано и для чего можно использовать?

Во многих литературных источниках о многопоточности в Delphi встречается всего 1 – 2 главы не более, все потому что эта тема изначально не особо освещена в справочной информации. Но речь не об этом, многопоточность хорошо, когда, например, вы запускаете формирование большого отчета, а сами в этом же окне продолжаете работать с журналом, вот такой утрированный пример. Это был пример нормально работающего приложения. Что чаще встречается на практике – запускаем отчет, программа «зависает» мы ждем пока отчет выгрузит нам данные и только потом продолжаем работать в журнале, как-то так.

Реализовано это довольно просто, так сказать пара кликов.

1.У компонента TOraSession.TheadSafety=true

2.У компонента TOraQuery.NonBlocking=true


Ну вот собственно и все.

После этих действий ваш датасет будет обрабатывать запросы выборки данных (select) в отдельном потоке, что позволит, к примеру параллельно основной работе выгружать отчетные формы. 

Как вы могли догадаться данный функционал можно использовать не только для отчетов. У меня, например, несколько ПО которые работают только в потоках, то есть вся логика распределена по потокам и этого мне удалось достать в основном исходя из метода, описанного в данной статье.