Consulta ao BD usando Thread

Delphi

14/09/2007

Pessoal,
Boa tarde!

Estou tentando fazer uma consulta no meu banco de dados usando um thread pois nesta consulta eu trago um campo do tipo blob que contem uma imagem e a mesma é bem grande entao quando faço isso o sistema esta travando entao colocando esta consulta na thread espero que ele nao trave.
Eu fiz assim:

type
  TThreadSQL = class(TThread)
    protected
      procedure Execute(); Override;
    private
     procedure SQLGrid;
  end;




procedure TThreadSQL.SQLGrid;
begin
  with Form1 do begin
    ClientDataSet1.Close;
    ClientDataSet1.Params.ParamByName(´NOME´).AsString :=  ClientDataSet2.FieldByName(´NOME´).AsString;
    ClientDataSet1.Open;
   end;
end;


procedure TThreadSQL.Execute;
begin
  Synchronize(SQLGrid);
end;


Eu chamo ela assim:

TThreadSQL.Create(false);



Ai acontece que o sisitema trava da mesma maneira ate que o registro seja carregado.

Algem sabe onde estou errando?

Obrigado!


Mmoreira

Mmoreira

Curtidas 0

Respostas

Mmoreira

Mmoreira

14/09/2007

ninguem sabe esta?


GOSTEI 0
Weber

Weber

14/09/2007

Todos os componentes de acesso ao banco devem pertencer a sua Thread (tem que ser criados dentro dela).

Database, Transaction, Query, ClientDataSet


GOSTEI 0
Mmoreira

Mmoreira

14/09/2007

Weber,
No caso meu sistema esta em camadas entao eu tenho no servidor uma funcao que me retorna a consulta no BD.
Entao no cliente eu tenho de ter o ClientDataSet dentro da Thread e apenas isto bastaria ou eu teria de ter uma thread no server tambem?


GOSTEI 0
Weber

Weber

14/09/2007

Nunca precisei usar em thread mas acredito que seja isto mesmo colocando o ClientDataSet dentro da thread deve resolver.


GOSTEI 0
POSTAR