[firebase-br] Ajuda em SQL
Tecnobyte Informática
temp2 em tecnobyte.com.br
Seg Mar 7 16:35:14 -03 2011
Boa tarde
Em que evento você executa o select mencionado? Se estiver executando algum
SELECT dentro de eventos como OnDrawColumnCell ou OnDrawDataCell, esta
certamente é a causa da lentidão.
Quando eu quero destacar alguma coisa em DBGrid tomando como base alguma
informação que vem do banco de dados, geralmente uso um sub-select no select
principal para pegar alguma informação que me permita determinar a cor mais
adequada para aquela linha.
Exemplo:
SELECT
Cliente.Codigo,
Cliente.Nome,
(SELECT FIRST 1 ContaReceber.Codigo FROM ContaReceber
WHERE ContaReceber.Cliente_Codigo = Cliente.Codigo AND
DataPagamento IS NULL) AS ExisteDebito
...
FROM Cliente
...
Desta forma eu terei uma campo a mais no DataSet. Se estiver NULL é porque
não tem débito; caso contrário (não nulo) é porque tem débito.
Em Delphi, no evento OnDrawColumnCell ou similar posso testar assim:
if DataSet.FieldByName('ExisteDebito').IsNull then
Cor := clBlack
else
Cor := clRed;
...
DICA! O campo ExisteDebito pode ficar oculto, bastando colocar isto abaixo
no evento AfterOpen do DataSet:
DataSet.FieldByName('ExisteDebito').Visible := False;
Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br
----- Original Message -----
From: "Marcio Da Silva Ereno" <marcio em msereno.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Monday, March 07, 2011 2:28 PM
Subject: [firebase-br] Ajuda em SQL
Ola pessoal,
no meu sistema quando eu abro a pesquisa de clientes eu destaco o cliente
que esta com atraso
deixa a linha do grid com uma cor diferente eu uso o seguinte sql
// aqui estou filtrando o cliente as parcelas vencidas que não estão pagas!
select cliente from receber where cliente=:pcodi and vencimento<:pdata and
pagamento is null
mais rescentemente um cliente esta me reclamando de lentidao na rede
no cadastro de cliente fui verificar e esse codigo que esta deixando lento,
alguem tem algum ideia como resolver isso
se tem como melhor o sql?
colocar alguns indice?
obs: ja existe indice do cliente e do vencimento.
obrigado pela atenção
--
*Marcio da Silva Ereno*
*Analista de Sistemas*
*MSEreno - Assessoria & Sistemas*
www.msereno.com.br
Mais detalhes sobre a lista de discussão lista