Главная страница
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.018 c
15-1181976201
Мфлютка Бесс
2007-06-16 10:43
2007.07.15
инженерный калькулятор


15-1180468076
Avokain
2007-05-29 23:47
2007.07.15
Уравнение движения по окружности


2-1182532885
7D7
2007-06-22 21:21
2007.07.15
Фильтрация в DBGrid


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


2-1180971570
GoRdon
2007-06-04 19:39
2007.07.15
Как бы сделать PlayList?