Ir para conteúdo
Fórum Script Brasil
  • 0

Vincular adoquery com informações dbgrid Delphi ACCESS [RESOLVIDO]


Mesfistofeles

Pergunta

Boa tarde

Tenho uma dúvida:

Como faço para que o resultados da soma das colunas do dbgrid 1 e 2 (ADOQUERY1,ADOQUERY2) sejam zerados e relacionados ao numero de orçamento da tabela orçamento? (campo codigo autoincremento) ficou assim:

adoquery1

Select sum (Total) as total1 from OrcaAcab;

adoquery2

Select sum (Total) as Total2 from OrcaItems;

Ai fiz isto tb

Select sum (Total) as Valortotal from OrcaAcab group by CodigoOrçamento.orcamento =:CodigoOrçamento;

Ai dá erro:

Objeto Parameter definido incorretamente. As informações são inconsistentes ou incompletas

Editado por Mesfistofeles
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0
Como faço para que o resultados da soma das colunas do dbgrid 1 e 2 (ADOQUERY1,ADOQUERY2) sejam zerados e relacionados ao numero de orçamento da tabela orçamento? (campo codigo autoincremento) ficou assim:

adoquery1

Select sum (Total) as total1 from OrcaAcab;

adoquery2

Select sum (Total) as Total2 from OrcaItems;

Mesfistofeles, esta dúvida está mais para a sessão de Bando de dados do que Delphi, mas em todos os casos...

Nestas consultas, se você quer vincular ao orçamento específico, você deverá acrescentar a cláusula where nestes consultas onde você passará como parâmetro o codigo do orcamento. (similar ao que você postou abaixo)

Ai fiz isto tb

Select sum (Total) as Valortotal from OrcaAcab group by CodigoOrçamento.orcamento =:CodigoOrçamento;

Ai dá erro:

Objeto Parameter definido incorretamente. As informações são inconsistentes ou incompletas

Foi erro de digitação ou você está mesmo utilizando "Ç" no nome dos identificadores? você não deve utilizá-lo.

Link para o comentário
Compartilhar em outros sites

  • 0

Select sum (OrcaAcab.Valora) as ValorAc from NumAcab.OrcaAcab, CodigoOrca.orcamento, where NumAcab.OrcaAcab = :CodigoOrca.orcamento;

acho que tem uma virgula sobrando

Select sum (OrcaAcab.Valora) as ValorAc from NumAcab.OrcaAcab, CodigoOrca.orcamento where NumAcab.OrcaAcab = :CodigoOrca.orcamento;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Ainda não esta dando certo....

Olha que estranho agora ele mostra um valor que não têm nada a ver por exemplo aqui era para mostrar R$:40,00 mas esta mostrando r$:120,00 Estou usando esta adoquery, mas o dbgrid onde têm os dados que estão sendo somados pelo sum estão ligados há um adotable.

Select sum (Valora) as soma from OrcaAcab, orcamento where Codigorca.orcamento;

Editado por Mesfistofeles
Link para o comentário
Compartilhar em outros sites

  • 0
Estou usando esta adoquery, mas o dbgrid onde têm os dados que estão sendo somados pelo sum estão ligados há um adotable.

então ligue o seu AdoQuery ao DBgrid atraves da propriedade DataSource do AdoQuery.... voce deve estar usando dois DataSources ...um do AdoQuery e um do AdoTable

coloque na propriedade DataSource do dbgrid aquele que voce deseja visualizar

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Repassando, as tabelas chamam-se: Orcamento, OrcaAcab e OrcaItens.

Select sum (OrcaAcab.Valora) as ValorAc from NumAcab.OrcaAcab, CodigoOrca.orcamento, where NumAcab.OrcaAcab = : CodigoOrca.orcamento;

Objeto Parameter definido incorretamente. As informações são inconsistentes ou incompletas.

Mesfistofeles, voce não deve deixar o ":" "voando", ou seja, tem que ficar agarradinho como o identificador do parâmetro.

De qualquer modo, este seu SQL está "pra lá de bagdá". :blink:

Primeiro, o identificador do parâmetro não poderia ser o nome de um campo da tabela.

Segundo, retirando o ":", este seu SQL estaria relacionando OrcaAcab e Orcamento apenas se você colocasse do formato correto que é <nome da tabela>.<nome do campo>, mas você pôs invertido. Ou seja, deveria ser algo como: OrcaAcab.NumAcab = Orcamento.CodigoOrca

Select sum (Valora) as soma from OrcaAcab, orcamento where Codigorca.orcamento;
e este também continua nas nuvens. :huh:

Voce está referenciando duas tabelas na cláusula from, mas não as está vinculando na cláusula where, e como ela está, não está correta - falta mais alguma coisa.

E se continuar a inverter a sequencia <nome tabela>.<nome campo>, suas consultas não vão funcionar nunca. E, como disse o Jhonas: tem vírgula sobrando...

Acho que seu problema está em construir as consultas e seria conveniente você procurar material para conhecer um pouco mais sobre a sintax SQL.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Boa noite Amigos.

Realmente estava fazendo bobeira obrigado mesmo pelos toques, a parte boa é que aprendi mais com isto... Mass vamos lá, realmente agora consegui fazer com que os valores deêm certo, mais ainda tenho uma dúvida:

Bem, agora né, o sum esta mostrando o valor certo, mas quando tento mover para outro campo, ele continua no mesmo valor não atualiza....

Detalhe: na hora em que fui ativar a query apareceu um aviso pedindo para colocar valores em parametros... ai na base da tentativa e erro. acabei colocando o valor do código de orçameno no caso "37" lá em value, ai, o que aconteceu é isto: não esta atualizando e fica lá parado nos R$:45,00 o que faço para que o valor mude quando mudar de registro?

Agora como ficou a Sql:

Select sum (valora) as total from orcaacab, orcamento where orcaacab.numacab=:orcamento.codigoorca

Group by orcamento.codigoorca ;

Desde já, obrigado pela ajuda.

Editado por Mesfistofeles
Link para o comentário
Compartilhar em outros sites

  • 0
o sum esta mostrando o valor certo, mas quando tento mover para outro campo, ele continua no mesmo valor não atualiza....
Mesfistofeles, você precisa dar uma melhorada na sua explicação - não entendi direito o que está ocorrendo.

Detalhe: na hora em que fui ativar a query apareceu um aviso pedindo para colocar valores em parametros... ai na base da tentativa e erro. acabei colocando o valor do código de orçameno no caso "37" lá em value, ai, o que aconteceu é isto: não esta atualizando e fica lá parado nos R$:45,00 o que faço para que o valor mude quando mudar de registro?
Isto ocorreu em design-time, é o que me parece. Dá para dar mais detalhes. É que se você não inicializa o parâmetro via código, então deveria estar dando um erro.

Sei lá, tá bem estranha a sua explicação. Tenha em mente que se você quer filtrar o código do orçamento, então antes de abrir a consulta você tem que inicializar este parâmetro.

Agora como ficou a Sql:

Select sum (valora) as total from orcaacab, orcamento where orcaacab.numacab=:orcamento.codigoorca

Group by orcamento.codigoorca ;

Essa consulta continua errada. Ela não gera erro na execução (se você passar o parâmetro), mas veja que você usa duas tabelas na cláusula FROM - sempre que você faz isto, deve relacionar ambas na cláusula WHERE (já falei sobre isto no post#7). <_<

Ahhh!! E não declare parâmetros da forma como está fazendo (:orcamento.codigoorca) - identificador composto, use apenas um nome.

Veja de onde vem o campo Valora.

Voce só tem este campo no SELECT, então só pode vir de uma das tabelas e imagino que seja OrcaAcab. Como o agupamento é feito pelo campo codigoorca (da tabela Orcamento), imagino que você queira totalizar por este código. Entretanto, observo que ele supostamente é o mesmo que NumAcab (já que você está comparando eles no where). Assim, você não precisa incluir a tabela Orcamento na consulta - apenas use os campos existentes na tabela OrcaAcab:

Select  sum (valora) as total 
from orcaacab where orcaacab.numacab = :codigoorca
Group by numacab;

Veja que neste exemplo o parâmetro passou a chamar-se codigoorca.

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...