Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Выполнение ADOQuery параллельно основному процессу
|
|||
|---|---|---|---|
|
#18+
Добрый день. Подскажите, желательно примером - как процесс выполнения запроса пустить в параллель с основным процессом, чтобы не зависало на время выполнения и можно было второй(3...4...) запрос выполнить. По форуму не нашел. Так понимаю, нужно с потоками работать? Ну и отмену выполнения запроса хотелось бы сделать, в случае, если задача отпала. Каждый запрос открывается в MDIChild. Соответственно пока выполняется, вешает все. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2012, 13:17 |
|
||
|
Выполнение ADOQuery параллельно основному процессу
|
|||
|---|---|---|---|
|
#18+
Windows, Builder? О потоках читай Джеффри РИХТЕР "Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows". Потом в справке Buildera читай о TThread. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2012, 14:01 |
|
||
|
Выполнение ADOQuery параллельно основному процессу
|
|||
|---|---|---|---|
|
#18+
Freeze729По форуму не нашел. А заглянуть в документацию и найти там ExecuteOptions с его eoAsyncExecute помешало что?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2012, 14:07 |
|
||
|
Выполнение ADOQuery параллельно основному процессу
|
|||
|---|---|---|---|
|
#18+
Windows 7, RadXE2, Oracle 10. Помешало незнание что искать. Сейчас буду шатать темы. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2012, 14:28 |
|
||
|
Выполнение ADOQuery параллельно основному процессу
|
|||
|---|---|---|---|
|
#18+
Freeze729Помешало незнание что искать. Именно поэтому начинающие обязательно должны прочитать документацию целиком. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2012, 14:35 |
|
||
|
Выполнение ADOQuery параллельно основному процессу
|
|||
|---|---|---|---|
|
#18+
Не обнаруживаю для себя глубокое чтение эффективным. Инструменты забываются. Помнятся только верхушки и то с чем работал в последнее время. Не отправляйте только на тренировку памяти. И так как жучок верчусь. Книгу Рихтера скачал, прочту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2012, 14:44 |
|
||
|
Выполнение ADOQuery параллельно основному процессу
|
|||
|---|---|---|---|
|
#18+
Freeze729Помнятся только верхушки и то с чем работал в последнее время. Ну так а откуда взяться в памяти этим верхушкам, если их не прочтёшь?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2012, 15:25 |
|
||
|
Выполнение ADOQuery параллельно основному процессу
|
|||
|---|---|---|---|
|
#18+
Получается читать документацию. Поставил асинхронку, рефрешу данные в гриде, все норм, выполняет один запрос, а при попытке выполнить другой, пишет, что ADOQUERY: Field 'DUMMY' not found. Опять собака. Сам очищать он не хочет видимо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2012, 16:34 |
|
||
|
Выполнение ADOQuery параллельно основному процессу
|
|||
|---|---|---|---|
|
#18+
Freeze729Получается читать документацию. Поставил асинхронку, рефрешу данные в гриде, все норм, выполняет один запрос, а при попытке выполнить другой, пишет, что ADOQUERY: Field 'DUMMY' not found. Опять собака. Сам очищать он не хочет видимо.А кто тебе сказал что это так легко? :) У тебя в игре три отдельных сущности: твоя программа, интерфейсный драйвер доступа к базе и коннект к серверу базы данных. Чтобы в принципе можно было делать асинхронные запросы тебе нужно уметь либо в твоей программе работать с потоками, либо чтобы интерфейсный драйвер умел делать асинхронные запросы (в этом случае сам драйвер запустит запрос в отдельном потоке). Чтобы можно было делать два (или больше) одновременных запроса к базе - надо делать несколько одновременных коннектов к серверу. Ты не можешь сделать два запроса одновременно в одном коннекте. А после того как ты сделал несколько коннектов, то либо через каждый из них запускаешь запрос в асинхронном режиме а потом сидишь и проверяешь какой из них уже отработал а какой нет, либо делаешь несколько потоков самостоятельно и тогда уже "главный" поток будет заниматься синхронизацией получения данных от детей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2012, 18:20 |
|
||
|
Выполнение ADOQuery параллельно основному процессу
|
|||
|---|---|---|---|
|
#18+
Спасибо за наводку.. С потоками получилось. Через виртуальные окна, очень даже шоколадно. Ниче не тормозит, параллельно запросы работают, ниче не вешается. Единственный баг остался, при закрытие уже самой программы выходит ошибка EOSError 'System Error. Code:1400. Недопустимый дескриптор окна'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2012, 13:21 |
|
||
|
Выполнение ADOQuery параллельно основному процессу
|
|||
|---|---|---|---|
|
#18+
Freeze729Спасибо за наводку.. С потоками получилось. Через виртуальные окна, очень даже шоколадно. Ниче не тормозит, параллельно запросы работают, ниче не вешается. Единственный баг остался, при закрытие уже самой программы выходит ошибка EOSError 'System Error. Code:1400. Недопустимый дескриптор окна'. Не пребывай в сладкой неге слишком долго. Учитывая твой почти нулевой опыт работы с потоками я гарантирую тебе с вероятностью 99% что у тебя "утекают" ресурсы. Перед тем как сдавать работу заказчику убедись что ты не флудишь системными объектами и всё корректно закрывешь. И не тогда когда в таск менеджере всё убито а когда приходит правильное событие (закрытие формы например). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2012, 13:37 |
|
||
|
Выполнение ADOQuery параллельно основному процессу
|
|||
|---|---|---|---|
|
#18+
С потоками может быть такое, эт да)) До этого задачи в хвост друг другу дышали. Ну ниче, растем. С ошибкой разобрался. При выполнении запроса в потоке, еще давал выход на экран самописному ShowMessage, который убегает рандомом до края экрана по наведению мыши, чтобы пользователя не угнетать кнопко-нажимательством. Вот он то и не объявлен. Если че, еще мысли будут, что нужно предусмотреть, то пишите, я читаю - прислушиваюсь. з.ы. Только особо не трольте, в ассемблер не полезу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2012, 13:45 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=92&tid=2020789]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 285ms |
| total: | 427ms |

| 0 / 0 |
