Capturar dados de uma consulta sql e mostrar msg na tela
20/08/2008
0
Tabela sistemas contendo os campos, dentre outros: id_sistema (int) e dsc_sistema(varchar).
Tabela manutenção contendo os campos, dentre outros: dta_inicial(datetime), dta_final(datetime), id_sistema (int), dsc_manutenção(varchar).
Enfim... preciso realizar uma consulta onde faça a verificação: quando dta_final for nula, ele mostra num panel uma mensagem do tipo:
O sistema # entrou em manutenção na data
Descrição da manutenção:
Enfim, para isso faço uma consulta do tipo:
select *
from sistemas as S, manutenção as M
where dta_final is null and S.id_sistema=M.id_sitema
Beleza... mas eu queria saber como colocar essa consulta numa variável p/ mostrar no panel de acordo com a mensagem:
O sistema entrou em manutenção na data
Descrição da manutenção:
Rlcdo
Posts
21/08/2008
Rlcdo
Não deve ser uma coisa difícil de fazer p/ usuários mais avançados... simplificando, eu quero recuperar informações do banco de dados MS SQL e mostrá-las no meu programa em delphi num panel.
21/08/2008
Paulo
22/08/2008
Rlcdo
Por isso que eu especifiquei mais ou menos como são as tabelas no BD, no primeiro post...
Aí, no caso, quando a pessoa selecionar o sistema, e lá na tabela de manutenção já existir o sistema selecionado, em manutenção, ele vai estar com data final nula, pois não foi implantado em produção ainda... e daí ele vai fazer a consulta, verificando se o sistema selecionado p/ manutenção possui data final nula... possuindo, ele vai mostrar na tela a tal mensagem, informando que o sistema já está em manutenção
26/08/2008
Rlcdo
27/08/2008
Marcosrocha
´select * from sistemas as S, manutenção as M where dta_final is null and S.id_sistema=M.id_sitema and S.id_sistema = ´+DM.CDSSistema.FieldByName(´id_sistema´).AsString;
É isso? Lembre que meu CDS está posicionado no registro apontado pelo DBGrid.
27/08/2008
Rlcdo
[b:5a6d607f34] With DM.ADOQ_LT do Begin
SQL.Clear;
SQL.Add(´select MS.Codigo, MS.Idt_Sistema, MS.Dta_Inicial, MS.Dta_Final, MS.Dsc_Detalhada, MS.Dsc_Dir, S.Dsc_Sistema, S.Idt_Sistema ´);
SQL.Add(´from caMANUTENCOES_DE_SISTEMAS as MS, caSISTEMAS as S´);
SQL.Add(´where MS.Dta_Final is Null and MS.Idt_Sistema=S.Idt_Sistema and S.Idt_Sistema=´+DM.ADOQ_LT.FieldByName(´Idt_Sistema´).AsString);
Open;
end;[/b:5a6d607f34]
Porém, quando eu executo, aparece o seguinte erro: Project sistema.exe raised exception class EDatabaseError with message ´ADOQ_LT: Field ´Idt_Sistema´ not found ´
27/08/2008
Paulo
1) O Campo não existe na tabela.
2) Você não deve ter adicionado no FieldEditor do CDS e adicionou os demais. Sempre que adicionar no FieldsEditor algum campo, você terá que trabalhar somente com eles na sua query.
27/08/2008
Rlcdo
Sobre o CDS, nesse sistema eu não possuo um CDS.
Alguma outra idéia?
Clique aqui para fazer login e interagir na Comunidade :)