Mostrar resultado
Eu tenho essa query criada dinamicamente, como eu faço p/ mostrar o resultado dessa query
procedure TForm1.Button1Click(Sender: TObject);
var
Q: TQuery;
begin
Q := TQuery.Create(Application);
try
Q.DatabaseName := ´SF´;
with Q.SQL do begin
Add(´( SELECT COUNT(JORNAL) ´);
Add(´ FROM CLIENTES´);
Add(´ WHERE CIDADE = ´SP´´);
end;
Q.ExecSQL;
finally
Q.Free;
end;
end;
Obrigado
procedure TForm1.Button1Click(Sender: TObject);
var
Q: TQuery;
begin
Q := TQuery.Create(Application);
try
Q.DatabaseName := ´SF´;
with Q.SQL do begin
Add(´( SELECT COUNT(JORNAL) ´);
Add(´ FROM CLIENTES´);
Add(´ WHERE CIDADE = ´SP´´);
end;
Q.ExecSQL;
finally
Q.Free;
end;
end;
Obrigado
Bertocco
Curtidas 0
Respostas
Rjun
21/09/2005
Onde você vai mostrar o resultado?
GOSTEI 0
Bertocco
21/09/2005
Onde você vai mostrar o resultado?
Irei mostrar num label.
Obrigado
GOSTEI 0
Michael
21/09/2005
Olá colega!
Analisando seu código, reparei que vc criou [b:8a854cfc53]TQuery [/b:8a854cfc53]passando como [b:8a854cfc53]Owner [/b:8a854cfc53]o objeto [b:8a854cfc53]Application [/b:8a854cfc53]e, ao final, o liberou da memória com [b:8a854cfc53]Free[/b:8a854cfc53]. Isso não está correto. Qdo vc informa um Owner para um objeto (seja ele componente ou não), vc está dando a ele a responsabilidade de liberar o objeto da memória. Vc não pode, portanto, fazer isso manualmente.
O correto no seu código é passar o Owner como [b:8a854cfc53]nil[/b:8a854cfc53]:
Para mais detalhes sobre o assunto, consulte estes links:
http://delphi.about.com/od/kbcurt/ss/dynamiccreateno.htm
http://delphi.about.com/od/adptips2005/qt/nilselfapp.htm
Excelentes artigos. ;-)
[]´s
Analisando seu código, reparei que vc criou [b:8a854cfc53]TQuery [/b:8a854cfc53]passando como [b:8a854cfc53]Owner [/b:8a854cfc53]o objeto [b:8a854cfc53]Application [/b:8a854cfc53]e, ao final, o liberou da memória com [b:8a854cfc53]Free[/b:8a854cfc53]. Isso não está correto. Qdo vc informa um Owner para um objeto (seja ele componente ou não), vc está dando a ele a responsabilidade de liberar o objeto da memória. Vc não pode, portanto, fazer isso manualmente.
O correto no seu código é passar o Owner como [b:8a854cfc53]nil[/b:8a854cfc53]:
Q := TQuery.Create(nil);
Para mais detalhes sobre o assunto, consulte estes links:
http://delphi.about.com/od/kbcurt/ss/dynamiccreateno.htm
http://delphi.about.com/od/adptips2005/qt/nilselfapp.htm
Excelentes artigos. ;-)
[]´s
GOSTEI 0
Rjun
21/09/2005
procedure TForm1.Button1Click(Sender: TObject); var Q: TQuery; begin Q := TQuery.Create(Application); try Q.DatabaseName := ´SF´; with Q.SQL do begin Add(´( SELECT COUNT(JORNAL) ´); Add(´ FROM CLIENTES´); Add(´ WHERE CIDADE = ´SP´´); end; try Q.Open; Label1.Caption := Q.Fields[0].AsString; finally Q.Close; end; finally Q.Free; end; end;
GOSTEI 0
Rafael.valler
21/09/2005
var
Q: TQuery;
begin
Q := TQuery.Create(nil);
try
Q.DatabaseName := ´SF´;
with Q.SQL do begin
Add(´( SELECT COUNT(JORNAL) ´);
Add(´ FROM CLIENTES´);
Add(´ WHERE CIDADE = ´´SP´´´); //<<<mais 2 aspas
end;
Q.ExecSQL;
finally
Q.Free;
end;
//Mostrando no label
lblabel2.Caption:= Q.Fields[0].AsString;
Q: TQuery;
begin
Q := TQuery.Create(nil);
try
Q.DatabaseName := ´SF´;
with Q.SQL do begin
Add(´( SELECT COUNT(JORNAL) ´);
Add(´ FROM CLIENTES´);
Add(´ WHERE CIDADE = ´´SP´´´); //<<<mais 2 aspas
end;
Q.ExecSQL;
finally
Q.Free;
end;
//Mostrando no label
lblabel2.Caption:= Q.Fields[0].AsString;
GOSTEI 0
Rjun
21/09/2005
Uma coisinha. EXECSQL deve ser usando para INSERT/UPDATE/DELETE.
GOSTEI 0
Michael
21/09/2005
Uma outra dica: vc poderia tornar mais légivel o código dando um apelido para o campo retornado por Count(JORNAL), assim:
E, depois:
[]´s
Add(´( SELECT COUNT(JORNAL) [b]AS TOTAL[/b]´);
E, depois:
Label.Caption:= Q.FieldByname(´TOTAL´).AsString;
[]´s
GOSTEI 0
Bertocco
21/09/2005
Eu tenho essa query criada dinamicamente, como eu faço p/ mostrar o resultado dessa query
procedure TForm1.Button1Click(Sender: TObject);
var
Q: TQuery;
begin
Q := TQuery.Create(Application);
try
Q.DatabaseName := ´SF´;
with Q.SQL do begin
Add(´( SELECT COUNT(JORNAL) ´);
Add(´ FROM CLIENTES´);
Add(´ WHERE CIDADE = ´SP´´);
end;
Q.ExecSQL;
finally
Q.Free;
end;
end;
Obrigado
Quero gradecer a todos pelas Dica, eu consigui os resultados
Tenho todos um otima semana
GOSTEI 0