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

Вниз

Не выводятся данные в DBGrid   Найти похожие ветки 

 
galexis   (2005-11-09 11:38) [0]

Извиняюсь за глупый вопрос, но торможу, ничего не поделать.
Ситуация такая: идет поиск по фоновому запросу и вывод данных (TIBQuery+TDataSource+TDBGrid). Все работает прекрасно.
Меняю запрос с фонового на прямой, т.е.
FindQr.SQL.Clear;
FindQr.SQL.Add(....);
FindQr.Open;

В DBGrid остаются данные предыдущего запроса.
Я так понимаю дело в "фоновом наборе данных". Как его очистить?


 
ANB ©   (2005-11-09 12:09) [1]


> galexis   (09.11.05 11:38)

Что значит "фоновый набор".
ЗЫ. Перед открытием нового запроса неплохо бы старый то закрыть.
ЗЫЫ. SQL.Text := - удобнее.


 
galexis   (2005-11-09 12:14) [2]


> ANB ©

Закрыть! Так вот я и спрашиваю как его закрыть!
Выполняется фоновый запрос, идет передача набора данных из фонового потока в основной поток. Чего закрывать то?


 
Ega23 ©   (2005-11-09 12:17) [3]


FindQr.Close;
FindQr.SQL.Clear;
FindQr.SQL.Add(....);
FindQr.Open;


?


 
galexis   (2005-11-09 12:28) [4]


> Ega23 ©

Ну я понимаю, что я программист хреновый, но уж не настолько :).
Но вот формулировщик вопросов видимо точно совсем  никакой.
Попробую еще раз. Пользователь жмет кнопку Найти, создается и запускается фоновый поток, который производит поиск по запросу и возвращает набор данных в основной поток. Т.е. FindQr.Close - не действует - это компонент основного потока, а закрыть нужно из фона.
Выход  - убить фоновый поток! Вопрос, где его убить? По нажатию кнопки Найти не могу, иначе получится только создал, сразу и убил. Из другого места тоже не могу, создал то я его по кнопке Найти. Вот такая проблема


 
ANB ©   (2005-11-09 12:35) [5]


> galexis   (09.11.05 12:28) [4]

Еще больше все запутал. Код запости. И объясни - в чем смысл великий отдельного потока ?


 
Sergey13 ©   (2005-11-09 12:36) [6]

2[4] galexis   (09.11.05 12:28)
Если не знаешь как убить - зачем создавал? 8-)
И зачем вообще искать в другом потоке? Так долго ищет?


 
Плохиш ©   (2005-11-09 12:37) [7]


> galexis   (09.11.05 12:28) [4]

<telepator on>
Открывается один запрос, а отображаются данные из другого.
<telepator off>


 
galexis   (2005-11-09 12:44) [8]


> Sergey13 ©

Как убить я знаю, написать слово Destroy :) Для того и есть конструктор и деструктор.

Поиск в другом потоке - единственный способ отменить выполнение запроса, который я знаю.


 
galexis   (2005-11-09 13:15) [9]

Сделал, что называется в лоб. Поставил еще один TDataSource и переключаю свойство DBGrid.DataSource.
Я вообще противник большого числа одинаковых компонент в приложении.


 
Жанболат   (2005-11-10 09:37) [10]

На чем экономишь то?


 
Leonid Troyanovsky ©   (2005-11-10 10:08) [11]


> galexis   (09.11.05 12:44) [8]

> Поиск в другом потоке - единственный способ отменить выполнение
> запроса, который я знаю.


А выглядит отмена как TerminateThread? :)

--
Regards, LVT.


 
Digitman ©   (2005-11-11 09:54) [12]


> galexis


по поводу корректной отмены в IB "тяжелых" запросов, выполняемых в теле ХП, на ibase.ru есть статья



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

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

Наверх




Память: 0.49 MB
Время: 0.038 c
2-1131722329
Fostr
2005-11-11 18:18
2005.11.27
Запись/чтение массива типа Recored в/из файла через TFileStream


1-1130936561
SergProger
2005-11-02 16:02
2005.11.27
Ошибка при закрытии


2-1131565651
Haillies
2005-11-09 22:47
2005.11.27
Пинг


14-1131175374
SergP
2005-11-05 10:22
2005.11.27
Помогите найти что-нить для RadioEthernet а


14-1131002413
MBo
2005-11-03 10:20
2005.11.27
Пятничные задачки. Повтор нерешенного, и кое-что новое...