Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.05.01;
Скачать: [xml.tar.bz2];

Вниз

Как сделать чтобы программа ждала пока выполнится запрос?   Найти похожие ветки 

 
Брат   (2003-04-11 15:45) [0]

Вот я выполняю запрос через IBQuery. Сразу после IBQuery1.Active:=true у меня стоят операторы которые должны выполнится после того, как выполнится запрос.
Как сделать чтобы программа ждала пока выполнится запрос?
Надеюсь моёй вопрос понятен... ;)


 
Жук   (2003-04-11 15:59) [1]

А она, гадина, не ждёт ? :-)
Тогда можно цикл поставить :
while not IBQuery1.Active do .... :-)))


 
Соловьев   (2003-04-11 16:05) [2]


> Надеюсь моёй вопрос понятен... ;)

не-а :)))))


 
SergeyNew   (2003-04-11 16:06) [3]

Тупой способ, но работает. Надо просто после Active:=True перейти на последнюю запись в возвращаемом наборе данных, т.е.
IBQuery1.Active:=True;
IBQuery1.Last;


 
samalex   (2003-04-11 16:08) [4]

Я думаю, он хочет долждаться момента, когда запрос возвратит полную выборку данных.
FetchAll.


 
Max Zyuzin   (2003-04-11 16:10) [5]

>Брат © (11.04.03 15:45)
Ну вы блин даете... а что она делает по твоему??? Они и ждет... или скажи конкретнее что хочешь...


 
Брат   (2003-04-11 16:44) [6]

Через IBQuery я выполняю оператор DELETE FROM...
Сразу после этого мне нужно выполнить хранимую процедуру, которая обновляет полученную после IBQuery таблицу...
но выполнение не выполняется, так как таблица оказывается занятой...
Прилагаю участок кода:
...
IBQuery2.Active:=true;
IBStoredProc1.ExecProc;
...
Нужно между этими оператора что-то вставить, чтобы хранимая процедура не выполнялась пока, не выполнится удаление из таблицы...Вот такая вот проблема.


 
NickBat   (2003-04-11 16:57) [7]

А так?
IBQuery2. ExecSQL;
IBStoredProc1.ExecProc;


 
Жук   (2003-04-11 16:58) [8]

:-))) Идея :
a:=false;
IBQuery3:=TIBQuery.Create(Self);
IBQuery2.Active:=true;
while not a do
begin
IBQuery3.SQL.Clear;
IBQuery3.SQL.Add("select те записи, которые должны быть удалены");
IBQuery3.Open;
if IBQuery3.RecordCount<1 then a:=true;
IBQuery3.Close;
end;
IBQuery3.Free;
IBStoredProc1.ExecProc;
;-)))


 
Sergey Masloff   (2003-04-11 17:33) [9]

Ребят, да вы что... Вся VCL выполняется в одном потоке, пока Query.Open() не сделалось никуда управление дальше не идет. Или Query в отдельной Thread выполняется? Тогда синхронизировать надо.


 
NickBat   (2003-04-11 17:50) [10]

Запросы вида delete запускать на выполнение не Open, а Exec.


 
Sergey Masloff   (2003-04-11 18:07) [11]

NickBat © (11.04.03 17:50)
>Запросы вида delete запускать на выполнение не Open, а Exec.
ну это понятно...


 
NickBat   (2003-04-11 18:08) [12]

Тебе может и понятно, а автор ветки писал:

IBQuery1.Active:=True;
IBQuery1.Last;



 
Anatoly Podgoretsky   (2003-04-11 18:18) [13]

А чего гадать?
Ну не хочет он показывать тексты запросов, видимо так оно ему нужно.


 
NickBat   (2003-04-11 18:36) [14]

> Ну не хочет он показывать тексты запросов, видимо так оно ему нужно.
Ну почему же. :))
Автор ветки писал:

> Брат © (11.04.03 16:44)
> Через IBQuery я выполняю оператор DELETE FROM...
...

> IBQuery2.Active:=true;

Откуда совет: делай ExecSQl
Хотя, судя по отсутствию автора ветки, у него все давно получилось. А мы тут копья ломаем :))



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

Форум: "Базы";
Текущий архив: 2003.05.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
14-676
Miron
2003-04-15 12:43
2003.05.01
Защита программ


6-656
Novichek
2003-03-06 15:20
2003.05.01
TWebBrowser - запрет открытия нового окна по гипперссылке


4-838
hedgehoge
2003-03-04 02:10
2003.05.01
Передать в консоль


3-380
Jaxtor
2003-04-14 15:59
2003.05.01
IBDataSet error


1-525
Antonn
2003-04-20 22:49
2003.05.01
TMemo





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский