Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FABIO SYS

[Resolvido] ADOQUERY sum: tipos de dados imcompativer com a expressão

Recommended Posts

Olá Amigos

 

 

Estou outro probleminha:

Estou tentando dar um sum num adoquery para gerar a soma de um campo dbgrid mas quando vou ativar a query para true ela da o seguinte:

 

 

 

 

 

sum tipos de dados imcompativer com a expressão

 

 

 

Select sum (valorpapel) as geral from OrcaServ;

 

 

Sendo (valordopapel) a coluna do DBGRID e ORCASERV A TABELA já fiz isto antes e sempre deu certo pq agora ta dando erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como está montando o código no projeto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como está montando o código no projeto?

 

 

 

O pojeto esta desta forma:

 

 

No form tenho alguns dbedit e um dblookcombobox que são para procura e inserção e fazem parte da tabela cliente.

ja dbgrid tenho dois e em cada um deles iria criar um select sum para somar o campo de cada um deles e jogar o total num dbtext ai depois que estivesse pronto ou seja, os dois select sum estivessem cada um somando a su resctiva coluna no BGRID.

Eu criária uma variável para poder somar os oi dbtxt e jogar num outro dbtet com valor total.

AH e tb gostaria de saber como fazer para que duas adoquery atualizem assim que o valor de cada dbgrid for modiicado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não entendeu... o que eu pedi para você por aqui é o código que está usando no delphi para fazer o que está descrevendo acima, para ver se sua codificação está ok ou com algum problema, inclusive como está a sintaxe completa do sql que está usando, qual banco de dados, etc..

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não entendeu... o que eu pedi para você por aqui é o código que está usando no delphi para fazer o que está descrevendo acima, para ver se sua codificação está ok ou com algum problema, inclusive como está a sintaxe completa do sql que está usando, qual banco de dados, etc..

 

[]'s

 

 

Hummm agora entendi, lá vai:

 

 

O Banco de dados é acces e o componente de dados que uso é ADO mas para o select sum uso o ADOQUERY ai fiz assim:

 

 

Select sum (ValorPapel) as ValorGeral from OrcaServ;

 

 

Mas o mais estranho é que no DBGRID De cima (existem dois), e a select esta do mesmo jeito

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você executar essa select direto no banco, ela funciona?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você executar essa select direto no banco, ela funciona?

 

Olha só que estranho: Eu tenho um datamodule onde têm os bancos de dados ai primeiramente coloquei um clientdataset que é como Eu queria fazer inicialmente. Ai fiz as ligações direitinho no datamodule com o form "orçamento" só que ficou dando a seguinte mensagem:

 

type mismatch in expression

 

Ai acabei desistindo de usar clientdataset neste projeto...

 

 

Ah só para você saber o campo que estou tentando somar é um campo texto. De nome "Valor" e no outro dbgrid é "valorpapel"

 

 

Mas continuando...

 

Ai depois de tentar de todas as formas que eu conhecia com o dataclient desisti e resolvi fazer uma select com o adoquery

ai no primeiro dbgrid deu certo somou tudo direitinho exceto pelo fato de estar somando todos os clientes mas isso depois resolvo. Acho que com um where né?

Mas no outro DBGRID, que soma os dados que são da tabela "Adoserv" ele diz que ouve um erro...Pq só na outra funciona sendo que, a estrutura é a mesma?

 

 

Ah sim, quando executo direto no banco de dados acces ela funciona sim...

 

 

Só para saber, será que é por eu estar usando dois dbgrid no mesmo form? Muito embora eu ache que não estou começando a desconfiar de tudo ontem por exemplo até refiz as tabelas pq de-repente né? Mas continua somando apenas a de cima quando tento fazer o mesmo no outro dbgrid da erro.

E quando usei clientdataset, ele não dava certo no primeiro dbgrid nem no segundo. As selects ficaram assim (uso um adoquery para cada dbgrid)

 

 

 

ADOQUERY1

 

select (valor) as total from acab;

 

ADOQUERY2

 

select (valorpapel) as geral from acapap;

 

ai em cada dbgrid (embaixo dele) coloco um dbtext e faço a ligação com o field da query.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro, o comando SUM é um comando para somar campos numéricos, não texto... vendo suas sqls vejo que faz o comando em duas tabelas distintas, acab e acapap. Provavelmente os campos estão declarados de forma diferente, um como inteiro ou float e o que está dando problema como text. Então, das duas uma: ou você transforma o campo texto num valor inteiro ou real ou não usa o SUM, porque não vai funcionar mesmo.

 

Outra questão: desculpe a franqueza, mas você precisa urgentemente estudar sobre comandos sqls... afinal, comandos como sum e where são básicos...

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro, o comando SUM é um comando para somar campos numéricos, não texto... vendo suas sqls vejo que faz o comando em duas tabelas distintas, acab e acapap. Provavelmente os campos estão declarados de forma diferente, um como inteiro ou float e o que está dando problema como text. Então, das duas uma: ou você transforma o campo texto num valor inteiro ou real ou não usa o SUM, porque não vai funcionar mesmo.

 

Outra questão: desculpe a franqueza, mas você precisa urgentemente estudar sobre comandos sqls... afinal, comandos como sum e where são básicos...

 

[]'s

 

Imagine obrigado mesmo pelos toques e pode ter certeza: Vou estudar (na verdade já vernho estudando a um tempo) mas vou prestar mais atenção ao sql.Ah, vou mudar o formatodo do campo em casa e colocar para funcionar desde já obrigado pela atenção e paciência.

Compartilhar este post


Link para o post
Compartilhar em outros sites

De boa amigo, estude bastante SQL... ela é tão vital para um programador quanto é vital saber fazer algoritmos e analisar os problemas que lhe são passados... sem conhecer bem o SQL seus programas serão muito limitados e suas soluções também. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

De boa amigo, estude bastante SQL... ela é tão vital para um programador quanto é vital saber fazer algoritmos e analisar os problemas que lhe são passados... sem conhecer bem o SQL seus programas serão muito limitados e suas soluções também. ;)

 

 

Só para constar: Era isto mesmo! Mudei os parâmetros das tabelas para número e deu certinho, obrigado mesmo pela dica./

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.