Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.15;
Скачать: CL | DM;

Вниз

Выполнение запросов Oracle в отдельном процессе.   Найти похожие ветки 

 
tytus ©   (2007-04-16 18:22) [0]

Доброго дня мастера. Когда TOracleQuery  или TOracleDataSet выполняют запрос, то окно формы на которой лежат сии компоненты нельзя ни перетащить ни нарисовать процесс выполнения (пусть даже символически). Можно ли запустить выполнение запросов в другом процессе, чтобы можно было рисовать процесс выполнения и двигать форму.


 
Правильный Вася   (2007-04-16 19:08) [1]

можно


 
Kolan ©   (2007-04-16 19:34) [2]

> Можно ли запустить выполнение запросов в другом процессе,
>

А в отдельном потоке никак нельзя?


 
Германн ©   (2007-04-17 00:51) [3]


> чтобы можно было рисовать процесс выполнения

Не факт, что такое возможно в принципе.


 
Sam Stone ©   (2007-04-17 01:36) [4]

TOracleQuery.Threaded + F1


 
tytus ©   (2007-04-17 12:23) [5]

>all
ругается : Query thread is still in progress


 
Карелин Артем ©   (2007-04-17 14:40) [6]

1) вывести в отдельном потоке на экран форму, на которой и будет рисоваться прогресс.
2) В событии OnFetch или подобном, которое возникает при считывании очередной записи, рисовать прогресс и делать Application.ProcessMessages


 
ANB ©   (2007-04-17 16:30) [7]


> tytus ©   (16.04.07 18:22)

В отдельном потоке выполнять смысла нету. Да еще граблей соберешь немерянно. DOA и ODAC умеют выполнять запросы асинхронно. Главное потом - определить точно момент завершения выполнения.


 
tytus ©   (2007-04-17 16:52) [8]

>Карелин Артем ©   (17.04.07 14:40) [6]
А ежели данные не считываются, а
OracleQuery1.Sql.Add("begin execute .... end;");
Тогда как?


 
ANB ©   (2007-04-17 18:29) [9]


> А ежели данные не считываются, а
> OracleQuery1.Sql.Add("begin execute .... end;");
> Тогда как?

1) OracleQuery1.Sql.Add("begin execute .... end;"); - вот так лучше не делать.
OracleQuery1.Sql.Text := "begin execute .... end;"; - так лучше.
2) На фетч лучше не зашиваться, т.к. собственно выполнение запроса может занять полчаса, а фетч редко тормозит (если ты тока не тянешь на клиента пару миллионов записей).
3) Чукча не читатель ? Асинхронку смотрел ? Там опциями включается а потом в основном же потоке можно циклом ждать, не забывая выдавать в нем sleep и ProcessMessages.
ЗЫ. DOA как и ODAC не очень хорошо работают в отдельном потоке.


 
tytus ©   (2007-04-17 18:44) [10]

>ANB ©   (17.04.07 18:29) [9]
ORA-24909 - CLient in process
или [5].

>можно циклом ждать - где?


 
ANB ©   (2007-04-17 19:27) [11]


> - где?

Ну - можно свой класс-обертку написать и ждать в нем, можно после каждого Execute цикл сбацать - кому как нравиться.


> ORA-24909 - CLient in process
- эт ты чего делать пытался, огребая эту ошибку ? Судя по ней, сессия занята важным делом, а ты ее дергать пытаешься. Запусти еще одну и извращайся (отдельный поток для этого опять таки не нужен).


 
Карелин Артем ©   (2007-04-18 08:48) [12]


> tytus ©   (17.04.07 16:52) [8]

Если пункт 2 неприемлем, смотри пункт 1



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

Текущий архив: 2007.07.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
15-1181745308
Ломброзо
2007-06-13 18:35
2007.07.15
Короче, я тоже вернулся


15-1181982999
cosinus
2007-06-16 12:36
2007.07.15
Вопрос по WSH и network...


3-1176371776
Анна
2007-04-12 13:56
2007.07.15
Как обработать в приложении разрыв connect-a


2-1182139121
Riply
2007-06-18 07:58
2007.07.15
DeviceIoControl и повторное открытие диска.


15-1181687011
Makhanev Alexander
2007-06-13 02:23
2007.07.15
SFX архив...