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

Вниз

Запрос в потоке   Найти похожие ветки 

 
q1485   (2008-02-29 13:31) [0]

Прочитал статьи на сайте. Не получается выполнить запрос в параллельном потоке чтоб форма не залипала. Можете помочь примером..


 
Palladin ©   (2008-02-29 13:33) [1]

как неполучается то? в смысле ручки код набивать нехотят?


 
Сергей М. ©   (2008-02-29 13:49) [2]


> q1485   (29.02.08 13:31)


Корень зла, скорей всего, в Synchronize(DoWork)

)


 
ANB   (2008-02-29 13:50) [3]


> Не получается выполнить запрос в параллельном потоке

Не надо выполнять запрос в параллельном потоке. Пользуйся асинхронным режимом, только посмотри в справке, как правильно ожидать окончания выполнения.


 
q1485   (2008-02-29 13:50) [4]

Так и знал.. )

unit Unit2;

interface

uses
 Classes;

type
 TQQQ = class(TThread)
 private
   { Private declarations }
 protected
   procedure Execute; override;
 public
   procedure Exec;
 end;

implementation

uses Unit1;

{ TQQQ }

procedure TQQQ.Exec;
begin
 try
   Form1.OQuery1.Tag:=0;
   Form1.OQuery1.Open;
   Form1.OQuery1.Tag:=1;
 except Form1.OQuery1.Tag:=666; end;
 Terminate;
end;

procedure TQQQ.Execute;
begin
 { Place thread code here }
 Synchronize(Exec);
end;

end.

============================================
 QQQ:=TQQQ.Create(True);
........
   OQuery1.Tag:=0;
   if QQQ.Suspended then QQQ.Resume;
   while OQuery1.Tag=0 do begin
     Application.ProcessMessages;
   end;
   if OQuery1.Tag<>1 then RaiseException(0,0,0,0);
........
 QQQ.Free;


 
Palladin ©   (2008-02-29 13:51) [5]


> Сергей М. ©   (29.02.08 13:49) [2]

как говорится великий Synchronize и Сергей М. пророк его :)))


 
q1485   (2008-02-29 13:51) [6]

>> Сергей М. ©   (29.02.08 13:49) [2]
Я так и подумал...

>> ANB   (29.02.08 13:50) [3]
Я не читал, но извратился-я.. )


 
Сергей М. ©   (2008-02-29 13:52) [7]

Он, запрос этот, у тебя в основном потоке выполняется, а не в дополнительном.
Как же при этом форме не "залипать" ?


 
Сергей М. ©   (2008-02-29 13:55) [8]


> Так и знал


Раз знал, зачем тогда делал ?)


 
q1485   (2008-02-29 13:55) [9]

Всмысе что...
Кваери надо создавать и выпонять в дополнительном?
И не понял...


 
q1485   (2008-02-29 13:56) [10]


> Раз знал, зачем тогда делал ?)


Что вычитал, то сделал........ я пока другого не знаю.


 
Сергей М. ©   (2008-02-29 13:57) [11]


> Кваери надо создавать и выпонять в дополнительном?


Разумеется !
Иначе весь смысл тобой задуманного теряется ..


 
q1485   (2008-02-29 14:00) [12]


> Иначе весь смысл тобой задуманного теряется ..


М... а как же совместные ресурсы...
Меня это убедило что все будет нормально...

В-третьих, из этих процессов можно легко получить доступ ко всем глобальным данным программы, т.к. класс процесса является, по сути, просто частью программы - обычным юнитом (unit).


 
Сергей М. ©   (2008-02-29 14:00) [13]

Мало того, потребуется еще и Database с Session (если они у тебя явно используются) в том же доп.потоке создавать/активировать. Речь-то, вероятно, идет о BDE ?


 
q1485   (2008-02-29 14:02) [14]

Не, Oracle... Session только.....


 
Сергей М. ©   (2008-02-29 14:03) [15]


> а как же совместные ресурсы


А что с ними не так ?


> В-третьих, из этих процессов


Ты где это вычитал ? Там же где и пример взял ?

Не кури эту траву)


 
Сергей М. ©   (2008-02-29 14:04) [16]


> q1485   (29.02.08 14:02) [14]


Про Оракл не знаю. Но, подозреваю, что это и Оракла касается.


 
q1485   (2008-02-29 14:04) [17]


> А что с ними не так ?


Я думал кваери - совместный ресерс. Создал там, юзаю в другом месте..

http://www.delphimaster.ru/articles/thread/index.html

:)


 
Сергей М. ©   (2008-02-29 14:08) [18]


> http://www.delphimaster.ru/articles/thread/index.html


Притча во языцех)


> думал кваери - совместный ресерс


Но это же вовсе не означает, что его никак нельзя защитить, кроме как только с использованием Synchronize()


 
Palladin ©   (2008-02-29 14:09) [19]


> http://www.delphimaster.ru/articles/thread/index.html

как Максим допустил эту статью на сайт, до сих пор загадка...

вот что читать нужно
http://www.delphimaster.ru/articles/panov/


 
Сергей М. ©   (2008-02-29 14:10) [20]


> Palladin ©   (29.02.08 14:09) [19]


Она уже тут корни пустила как у тысячелетнего баобаба)


 
ANB   (2008-02-29 16:16) [21]


> q1485   (29.02.08 13:50) [4]

И одак и доа прекрасно работают асинхронно в основном потоке.
А вот при использовании в потоках могут выкинуть проблему. Как минимум сессию в потоке точно заводить еще одну придется. И снять запрос при этом все равно корректно не сможешь.



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

Форум: "Начинающим";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.058 c
2-1204611915
Sesh
2008-03-04 09:25
2008.03.30
Вопрос по отправке сообщения


2-1203587539
Pavelkq
2008-02-21 12:52
2008.03.30
Многострочный текст в CheckListBox


2-1204119039
kiberg
2008-02-27 16:30
2008.03.30
количество элементов в перечислении


15-1203248203
Сатир
2008-02-17 14:36
2008.03.30
Кто встречался с подобным типом ссылок, как это можно скачать?


15-1203244125
avptt
2008-02-17 13:28
2008.03.30
подхватил троян





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский