Valor de uma SQLQuery me retorna assim quot;500000=quot; s
Estou tentando calcular atraves de uma SQLQuery o total do campo (QUANTIDADE) ´integer´ de todas as operações efetuadas.
a sql está perfeita, faço no console do interbase, e ele me retorna o valor perfeitamente, mas quando ele me retorna o valor final através da SQLQuery ele me retorna somente até 6 caracters e coloca um sinal de = no final.
Ex: A soma dá o valor ´5000000´. Só q o valor q a SQLQuery retorna é assim: ´500000=´ com o sinal de igual no final.
Alguém sabe o porque disso!
por favor, se puderem me ajudar ficarei muito grato!
Utilizo delphi 6 e banco interbase
Desde já fico muito grato!
a sql está perfeita, faço no console do interbase, e ele me retorna o valor perfeitamente, mas quando ele me retorna o valor final através da SQLQuery ele me retorna somente até 6 caracters e coloca um sinal de = no final.
Ex: A soma dá o valor ´5000000´. Só q o valor q a SQLQuery retorna é assim: ´500000=´ com o sinal de igual no final.
Alguém sabe o porque disso!
por favor, se puderem me ajudar ficarei muito grato!
Utilizo delphi 6 e banco interbase
Desde já fico muito grato!
Ronithd
Curtidas 0
Respostas
Ronithd
16/01/2004
ele nao me renorna nenhum valor acima de 9999.
vamos supor q tem q dar um valor igual a 10000 (dez mil)
ele me traz o valor assim: 1000=
Abraços, Roni
vamos supor q tem q dar um valor igual a 10000 (dez mil)
ele me traz o valor assim: 1000=
Abraços, Roni
GOSTEI 0
Ronithd
16/01/2004
eu utilizei a seguinte maneira:
[b:9f7604c96d]Código sql:[/b:9f7604c96d]
SELECT sum (QUANTIDADE)SOMA
FROM OPERACOES
WHERE ID_CARTEIRA = :COD1
AND ID_ACAO = :COD2
[b:9f7604c96d]Executando a SQLQuery:[/b:9f7604c96d]
sql_soma_qnt.Active:= False;
sql_soma_qnt.Params.ParamByName(´COD1´).Value :=
DM.cds_total_carteirasID_CARTEIRA.AsInteger;
sql_soma_qnt.Params.ParamByName(´COD2´).Value :=
DM.cds_operacoesID_ACAO.AsInteger;
sql_soma_qnt.Open;
Buscando dados para o campo da tabela:
DM.cds_atualiza_saldoQUANTIDADE.AsInteger:=
sql_soma_qnt.FIELDBYNAME(´SOMA´).AsInteger;
e ele quase sempre me retorna um valor com um sinal de ´=´ no final.
valores acima de 9999 ele sempre me retorna isso.
Agradeço a atenção de vcs!
[]s Roni
[b:9f7604c96d]Código sql:[/b:9f7604c96d]
SELECT sum (QUANTIDADE)SOMA
FROM OPERACOES
WHERE ID_CARTEIRA = :COD1
AND ID_ACAO = :COD2
[b:9f7604c96d]Executando a SQLQuery:[/b:9f7604c96d]
sql_soma_qnt.Active:= False;
sql_soma_qnt.Params.ParamByName(´COD1´).Value :=
DM.cds_total_carteirasID_CARTEIRA.AsInteger;
sql_soma_qnt.Params.ParamByName(´COD2´).Value :=
DM.cds_operacoesID_ACAO.AsInteger;
sql_soma_qnt.Open;
Buscando dados para o campo da tabela:
DM.cds_atualiza_saldoQUANTIDADE.AsInteger:=
sql_soma_qnt.FIELDBYNAME(´SOMA´).AsInteger;
e ele quase sempre me retorna um valor com um sinal de ´=´ no final.
valores acima de 9999 ele sempre me retorna isso.
Agradeço a atenção de vcs!
[]s Roni
GOSTEI 0
Evandro_covre
16/01/2004
Cara uma vez eu tive um problema desse tb e penei pra achar o erro...e foi o seguinte...
Agora eu naum vo conseguir te falar certinho o q é... mas vo te falar oq eu fiz:
Qdo vc faz a conexão com a base de dados vc passa uma porrada de parâmetros pra ela... e foi justamente em um dos parametros que me ocorreu o erro, mas ele só aparece qdo executa uma query do tipo da sua.
Então sugiro que vc tire todos os parametros da Conexão com a Base e coloque somente os q vc conhece (caminho, dialeto, usuário, senha, charset)... e vá incluindo e testando os demais... até vc encontrar qual o parametro q está te trazendo o problema.
Qualquer coisa estamos ai...
[]´s Evandro
Agora eu naum vo conseguir te falar certinho o q é... mas vo te falar oq eu fiz:
Qdo vc faz a conexão com a base de dados vc passa uma porrada de parâmetros pra ela... e foi justamente em um dos parametros que me ocorreu o erro, mas ele só aparece qdo executa uma query do tipo da sua.
Então sugiro que vc tire todos os parametros da Conexão com a Base e coloque somente os q vc conhece (caminho, dialeto, usuário, senha, charset)... e vá incluindo e testando os demais... até vc encontrar qual o parametro q está te trazendo o problema.
Qualquer coisa estamos ai...
[]´s Evandro
GOSTEI 0
Ronithd
16/01/2004
Valeo a dica Evandro!!! Só q ainda não estou conseguindo... :cry:
V c vc pode me ajudar....
Eu deletei do DataModule o SqlConection e inclui um novo, depois eu dei dois clics sobre ele e fui nas propriedades dele, inclui uma nova conexao, e coloquei somente os seguintes parametros, sem mecher em mais nada:
Database : especifiquei o caminho do meu banco.
ServerCharSet : WIN1252
SQLDialet : 3
o password e o user_name ja vem digitados como sysdba e masterkey
eu só mexi nesses parâmetros ai e a droga do erro ainda me retorna! :cry:
Eu vo descrever oq q ta acontecendo certinho! Esse erro é mais cabeludo do q eu pensei.
resultado com 1 digito retorna erro (´=´ de 0 a 9)
resultado com 2 digito retorna normal (10 a 99)
resultado com 3 digito retorna erro (´10=´ de 100 a 999)
resultado com 4 digito retorna normal (1000 a 9999)
resultado com 5 digito retorna erro (´1000=´ de 10000 a 99999)
resultado com 6 digito retorna normal (100000 a 999999)
resultado com 7 digito retorna erro (´100000=´ de 1000000 a 9999999)
E assim sucessivamente!
Obs.: o erro está com certeza em alguma coisa dentro do delphi, porque c eu faço o comando sql de soma dentro do IBConsole, funciona perfeitamente.
Por favor c alguem souber onde q está o problema, me ajudem!!!!!!
Agradeço muito a atençao de todos!
[]s Roni
V c vc pode me ajudar....
Eu deletei do DataModule o SqlConection e inclui um novo, depois eu dei dois clics sobre ele e fui nas propriedades dele, inclui uma nova conexao, e coloquei somente os seguintes parametros, sem mecher em mais nada:
Database : especifiquei o caminho do meu banco.
ServerCharSet : WIN1252
SQLDialet : 3
o password e o user_name ja vem digitados como sysdba e masterkey
eu só mexi nesses parâmetros ai e a droga do erro ainda me retorna! :cry:
Eu vo descrever oq q ta acontecendo certinho! Esse erro é mais cabeludo do q eu pensei.
resultado com 1 digito retorna erro (´=´ de 0 a 9)
resultado com 2 digito retorna normal (10 a 99)
resultado com 3 digito retorna erro (´10=´ de 100 a 999)
resultado com 4 digito retorna normal (1000 a 9999)
resultado com 5 digito retorna erro (´1000=´ de 10000 a 99999)
resultado com 6 digito retorna normal (100000 a 999999)
resultado com 7 digito retorna erro (´100000=´ de 1000000 a 9999999)
E assim sucessivamente!
Obs.: o erro está com certeza em alguma coisa dentro do delphi, porque c eu faço o comando sql de soma dentro do IBConsole, funciona perfeitamente.
Por favor c alguem souber onde q está o problema, me ajudem!!!!!!
Agradeço muito a atençao de todos!
[]s Roni
GOSTEI 0
Motta
16/01/2004
Não trabalho com IB, mas meu palpite seria a conecção, Drive etc.
Não sei se é possivel tente conectar atraves de outro componente ou outra forma qq.
Uma ´camanga´ ate vc resolver, converta o resultado para string/varchar na query e desconverta no delphi
tipo StrToFloat ....
Não sei se é possivel tente conectar atraves de outro componente ou outra forma qq.
Uma ´camanga´ ate vc resolver, converta o resultado para string/varchar na query e desconverta no delphi
tipo StrToFloat ....
GOSTEI 0