TAdoQuery
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
передо мной была поставлена задача, написать программу, для перегона информации из MS SQL в MySQL
все хорошо получаеться, НО, на серваке MS SQL я забираю информацию с таблицы, которую рисует процедура.
Проблема в том что время выполнения данной процедуры иногда достигает минуты и более
Как сделать кнопку которая будет выполнять отмену выполнения запроса SQL
все хорошо получаеться, НО, на серваке MS SQL я забираю информацию с таблицы, которую рисует процедура.
Проблема в том что время выполнения данной процедуры иногда достигает минуты и более
Как сделать кнопку которая будет выполнять отмену выполнения запроса SQL
или хотя бы как сделать, чтобы во время выполнения данного запроса программа не подвисала
пробовал ProcessMessages, не помогает совсем...
пробовал ProcessMessages, не помогает совсем...
Делай ProcessMessages в теле процедуры или пускай ее в потоке TThread
в теле какой процедуры?
процедура о которой я написал, что формирует таблицу, она написана на MS SQL
т.е. находиться на стороне сервера, а на MS SQL процедур типо ProcessMessages нету!
процедура о которой я написал, что формирует таблицу, она написана на MS SQL
т.е. находиться на стороне сервера, а на MS SQL процедур типо ProcessMessages нету!
>Делай ProcessMessages в теле процедуры
>в теле какой процедуры?
я попутал... думал, что процедура в делфе
Работай через потоки
>в теле какой процедуры?
я попутал... думал, что процедура в делфе
Работай через потоки
поточнее опиши плиз
просто давно уже за дельфей не сидел
все забыл....
просто давно уже за дельфей не сидел
все забыл....
по поводу работы с TThread
наскоко я знаю это многопоточный класс
но как им пользоваться я понятия не имею
наскоко я знаю это многопоточный класс
но как им пользоваться я понятия не имею
блин
прочел информацию по поводу TThread но не понял точно что и как
посмотрел пример от дельфи
тоже не до конца понял
если можете дайте пример по задаче:
есть процедура, при выполнении которой программа зависает на минуту другую, но никакие ProcessMessages не помогут, т.к. там нету циклов
нужно сделать так, чтобы при выполнении данной процедуры программа не висела
это нужно сделать посредством TThread
только прошу не нужно давать ссылки на источники, я их прочел, везде одно и тоже и не нужно говорить посмотреть пример, тоже прочел
прочел информацию по поводу TThread но не понял точно что и как
посмотрел пример от дельфи
тоже не до конца понял
если можете дайте пример по задаче:
есть процедура, при выполнении которой программа зависает на минуту другую, но никакие ProcessMessages не помогут, т.к. там нету циклов
нужно сделать так, чтобы при выполнении данной процедуры программа не висела
это нужно сделать посредством TThread
только прошу не нужно давать ссылки на источники, я их прочел, везде одно и тоже и не нужно говорить посмотреть пример, тоже прочел
маленький классик для запуска любой процедуры в отдельном потоке:
Привер вызова... процедура LockIt выводит на форму в label числа от 0 до 20000.
Запускается при нажатии кнопки 1, убивается кнопкой 2 в любой момент. Приложение не подвисает.
Код: Выделить всё
type
TProcType = procedure;
TMyThread = class(TThread)
ProcToRun: TProcType;
procedure Execute; override;
constructor Create(Proc: TProcType); reintroduce;
destructor Destroy; override;
end;
...
procedure TMyThread.Execute;
begin
ProcToRun;
Destroy;
end;
constructor TMyThread.Create(Proc: TProcType);
begin
ProcToRun := Proc;
inherited Create(True);
end;
destructor TMyThread.Destroy;
begin
if Handle <> 0 then TerminateThread(Handle, 0);
inherited;
end;
Запускается при нажатии кнопки 1, убивается кнопкой 2 в любой момент. Приложение не подвисает.
Код: Выделить всё
procedure LockIt;
var i: Integer;
begin
i := 0;
While i < 20000 do
begin inc(i); Form1.Label1.Caption := IntToStr(i); end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
MyT := TMyThread.Create(LockIt);
MyT.Resume;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if MyT <> nil then FreeAndNil(MyT);
end;
С уважением, Lost Angel...
большое спасиоб 
p.s. блин какже трудно из веба в по возвращаться

p.s. блин какже трудно из веба в по возвращаться
