Nino Marques Postado Julho 31, 2009 Denunciar Share Postado Julho 31, 2009 Seguinte tenho um banco de dados...ele tem armazena em uma coluna 'Tempo_de_Ligação' os tempos de gravação de um programa aki...Preciso somar todos os valores de tempo por dia..e fazer um grafico Tempo de ligação X Dia...Eu fiz assim...mas não deu certoo.._________________________________DM.ADOQuery_grafico.Close;DM.ADOQuery_grafico.sql.Text := 'select '+ 'left(inicio, 10) as data, '+ ' right(''0000''+cstr( (24*int(sum(Tempo_de_Ligação))) + datepart(''h'', cdate(sum(Tempo_de_Ligação)))), 4)+'':''+ '+ 'right(cdate(sum(Tempo_de_Ligação)), 5) as horastotais '+ 'from '+ 'chamadas '+ ' group by '+ ' left(inicio, 10) ';DM.ADOQuery_grafico.Open;_______________________________________Os dados eu pego de um Bd 'chamadas' e quero enviar para um 'grafico'.....Está dando um erro assim.."exception class EConvertError whit message "31/07/2009" is not a valid floating point value. Process Stop......"Onde será que está o problema?Abraasss Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 1, 2009 Denunciar Share Postado Agosto 1, 2009 "exception class EConvertError whit message "31/07/2009" is not a valid floating point value. Process Stop......"EConvertError mensagem " 31/07/2009 " não é um valor de ponto flutuante válido. Parada de processo......"Verifique a sua SQL pois voce está tentanto executar uma operação matematica em uma data ( cdate ).abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Nino Marques Postado Agosto 3, 2009 Autor Denunciar Share Postado Agosto 3, 2009 Eu entendi que o erro seria este...mas esse é o problema, não estou encontrando erro no codigo em relação a isso...Poderia me dar uma sugestão de fazer isso de outra forma? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 3, 2009 Denunciar Share Postado Agosto 3, 2009 Poderia me dar uma sugestão de fazer isso de outra forma?pelo que entendi, voce esta trabalhando com datas e horas ...certo ?a minha sugestão é para voce criar primeiro uma select para selecionar o perido de datas que voce querexe: 01/01/2009 a 01/02/2009 .... coms os registros selecionados voce pode calcular o somatório das horasse não for isso ... poste como esta os dados em sua tabela e como quer trabalhar com os registrosabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Nino Marques Postado Agosto 3, 2009 Autor Denunciar Share Postado Agosto 3, 2009 Seguinte....Em uma tabela tem uma coluna data e uma tempo de ligação.....elas fazem o controle de ligações de um telefone...Eu tenho outra tabela no mesmo BD q se chama Grafico...e ela precisa armazenar o tempo total de ligação por dia...Então preciso selecionar todas ligações do dia....e soma seus tempos totais e lança-los na tabela grafico..Porque com essa tabela vou criar um grafico DBChart...Estou usando então aquela rotinaa.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 3, 2009 Denunciar Share Postado Agosto 3, 2009 'select '+ 'left(inicio, 10) as data, '+ ' right(''0000''+cstr( (24*int(sum(Tempo_de_Ligação))) + datepart(''h'', cdate(sum(Tempo_de_Ligação)))), 4)+'':''+ '+ 'right(cdate(sum(Tempo_de_Ligação)), 5) as horastotais '+ 'from '+ 'chamadas '+ ' group by '+ ' left(inicio, 10) ';voce tem que refazer essa Select pois ela está errada em sua estrutura ... veja se consegue ( pense ) abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Nino Marques Postado Agosto 4, 2009 Autor Denunciar Share Postado Agosto 4, 2009 Mudei o Codigo para: DM.ADOQuery_grafico.Close;DM.ADOQuery_grafico.sql.Text := 'select '+ 'left(data, 10) as dia, '+ ' right(''0000''+cstr( (24*int(sum(Tempo_de_Ligação))) + datepart(''h'', cdate(sum(Tempo_de_Ligação)))), 2)+'':''+ '+ 'right(cdate(sum(Tempo_de_Ligação)), 5) as horastotais '+ 'from '+ 'chamadas '+ ' group by '+ ' left(data, 10) ';DM.ADOQuery_grafico.Open;Assim agora está dando o mesmo erro só q fla assim...."exception class EConvertError whit message "00:01:22" is not a valid floating point value. Process Stop......"Esse tempo é a soma das ligações mesmo.....então creio q está somando certinho...mas não está enviando as informações para a tabela...Me dá uma mão...porque já tente de tudooo!!!;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 4, 2009 Denunciar Share Postado Agosto 4, 2009 Assim agora está dando o mesmo erro só q fla assim...."exception class EConvertError whit message "00:01:22" is not a valid floating point value. Process Stop......"Erro de conversão de tipos ... quando a mensagem é ... "00:01:22" não é um valor valido de ponto flutuantesignifica que voce não pode somar por exemplo 5,60 + 00:01:22 entendeu ? o valor 00:01:22 deveria ser convertido para um valor real exemplo : converter o tempo em segundos e depois executar a somaabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Nino Marques Postado Agosto 4, 2009 Autor Denunciar Share Postado Agosto 4, 2009 Eu entendi isso de não poder somar aqueles valores...Só q assim...se "00:01:22" já é o valor da soma dos tempo.....porque ele está tentando somar mais coisas???porque os valores estão todos no formato hh:mm:ss mesmo....então oque pode estar acontecendo?Posso até converter tudo p segundo mas será q é mesmo necessario?!Abraço.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 4, 2009 Denunciar Share Postado Agosto 4, 2009 Eu entendi isso de não poder somar aqueles valores...Só q assim...se "00:01:22" já é o valor da soma dos tempo.....porque ele está tentando somar mais coisas???porque os valores estão todos no formato hh:mm:ss mesmo....então oque pode estar acontecendo?que tipo de operação é esta ?(24*int(sum(Tempo_de_Ligação))) "exception class EConvertError whit message "00:01:22" is not a valid floating point value. Process Stop......"(24*int(sum(00:01:22))) /// entendeu o que está ocorrendo ? abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Nino Marques Postado Agosto 4, 2009 Autor Denunciar Share Postado Agosto 4, 2009 Nossaaa...Agoraaa entediii.....Vo pensar no que fazer agoraaaa!Brigadão!Abraço.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Nino Marques Postado Agosto 7, 2009 Autor Denunciar Share Postado Agosto 7, 2009 Eu consegui fazer oque eu queria atraves do Access mesmo....eu executei uma consulta com a função em SQl q estava usando...e ela me retorna os valores q eu queria mesmo....Só q tem um problema...o formato dos resultados são todos do tipo texto....E o DbChart só recebe do tipo numerico ou data/hora.....Eu tentei então gerar uma tabela da consulta, essa é possivel gerar, mas não se atualiza sozinha, quando a consulta pe atualizada.Oque eu posso fazer?-Tem algum comando em SQL q posso colocar q envie os dados no formato q preciso?- Existe outro tipo de grafico no Delphi, que eu possa usar?Qual seria melhor saida? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 7, 2009 Denunciar Share Postado Agosto 7, 2009 Só q tem um problema...o formato dos resultados são todos do tipo texto....Mas no Access voce pode alterar isso ... basta alterar o tipo de campoabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Nino Marques Postado Agosto 7, 2009 Autor Denunciar Share Postado Agosto 7, 2009 Eu só consigo alterar o tipo de dos campos de uma tabela....em uma consulta não dá p fazer eu ACHO...Se for mesmo possivel como faço?! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 7, 2009 Denunciar Share Postado Agosto 7, 2009 Eu só consigo alterar o tipo de dos campos de uma tabela....em uma consulta não dá p fazer eu ACHO...Se for mesmo possivel como faço?!primeiro tente salvar a sua consulta como tabela http://office.microsoft.com/pt-br/access/HA102051331046.aspxabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Nino Marques Postado Agosto 7, 2009 Autor Denunciar Share Postado Agosto 7, 2009 Então..Mas foi o que eu flei.....a consulta salva como tabela num é gerada automaticamente....Ou seja sempre q entrar uma nova ligação....a tabela chamadas vai receber, a consulta também recebe...mas a tabela que provem da consulta não será atualizada...a menos q eu entre no access e crie uma nova tabela encima da nova consulta...Ai que mora o problema! =/ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 7, 2009 Denunciar Share Postado Agosto 7, 2009 tente fazer então conversão de tipos de dadoshttp://office.microsoft.com/pt-pt/access/HA012290182070.aspxabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Nino Marques Postado Agosto 10, 2009 Autor Denunciar Share Postado Agosto 10, 2009 Fazer conversão de tipos não adianta....porque o DbChart não recebe informações de uma consulta! =/Oque será q dá p fazer? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 11, 2009 Denunciar Share Postado Agosto 11, 2009 Outra sugestão ... trabalhar com tabela temporária.Quando voce gerar a comsulta passe o resultado para uma tabela temporária do delphi para pode usar no DBChartabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Nino Marques Postado Agosto 11, 2009 Autor Denunciar Share Postado Agosto 11, 2009 Li algumas coisas sobre tabela temporarias, e confesso que não sabia que existia esse recurso no Delphi, só que com o que li até então não sei bem como criar uma tabela dessas e enviar os dados da consulta sempre que o grafico for requerido..Você pode dar uma mãozinha de como fazer?Grato por tudo!Abraço.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 12, 2009 Denunciar Share Postado Agosto 12, 2009 Li algumas coisas sobre tabela temporarias, e confesso que não sabia que existia esse recurso no Delphi, só que com o que li até então não sei bem como criar uma tabela dessas e enviar os dados da consulta sempre que o grafico for requerido..Veja o que encontra no forum primeiro...http://scriptbrasil.com.br/forum/index.php...bela+temporariaabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Nino Marques
Seguinte tenho um banco de dados...ele tem armazena em uma coluna 'Tempo_de_Ligação' os tempos de gravação de um programa aki...
Preciso somar todos os valores de tempo por dia..e fazer um grafico Tempo de ligação X Dia...
Eu fiz assim...mas não deu certoo..
_________________________________
DM.ADOQuery_grafico.Close;
DM.ADOQuery_grafico.sql.Text :=
'select '+
'left(inicio, 10) as data, '+
' right(''0000''+cstr( (24*int(sum(Tempo_de_Ligação))) + datepart(''h'', cdate(sum(Tempo_de_Ligação)))), 4)+'':''+ '+
'right(cdate(sum(Tempo_de_Ligação)), 5) as horastotais '+
'from '+
'chamadas '+
' group by '+
' left(inicio, 10) ';
DM.ADOQuery_grafico.Open;
_______________________________________
Os dados eu pego de um Bd 'chamadas' e quero enviar para um 'grafico'.....
Está dando um erro assim..
"exception class EConvertError whit message "31/07/2009" is not a valid floating point value. Process Stop......"
Onde será que está o problema?
Abraasss
Link para o comentário
Compartilhar em outros sites
20 respostass a esta questão
Posts Recomendados
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.