Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.013 c
1-1178877077
Oleg_teacher
2007-05-11 13:51
2007.07.15
загрузить ftFmtMemo в список


15-1181713840
tsoftware
2007-06-13 09:50
2007.07.15
Продажа исходников


3-1176726642
Xmen
2007-04-16 16:30
2007.07.15
Логин форма.


15-1181913417
VID
2007-06-15 17:16
2007.07.15
Помогите найти книгу по JBoss на русском.. плЫз


15-1181532063
evgewik
2007-06-11 07:21
2007.07.15
работа




   Наверх