Coalesce ... Naum consigo fazer funcionar em alguns computad
Pessoal, quando tento executar uma SQL com a função COALESCE, dá o seguinte erro
Dynamic SQL Error.
SQL error code = -804.
Function unknown.
COALESCE.´
O que pode ser
Estou usando firebird 1.5 e delphi 5.0
Esse erro só aconteçe aqui no meu computador, fiz teste em outro computador e funciona normal, alguem sabe o motivo?
O código é este:
O teste que fiz em outro micro o banco de dados é o mesmo e os codigos tambem, simplesmente só copiei deste micro para outro, só que neste aqui aparece o erro que citei acima.
Gradecido ajuda de todos.
JLima_Jrº
Dynamic SQL Error.
SQL error code = -804.
Function unknown.
COALESCE.´
O que pode ser
Estou usando firebird 1.5 e delphi 5.0
Esse erro só aconteçe aqui no meu computador, fiz teste em outro computador e funciona normal, alguem sabe o motivo?
O código é este:
with dm.calculos do begin close; sql.clear; sql.add(´select mes, ano, dataextenso, conta, sum(coalesce(valord,0))as debito, sum(coalesce(valorc,0))as credito, (sum(coalesce(valord,0)) - SUM(coalesce(valorc,0)))as saldo from tbconta´); sql.add(´WHERE (conta = ´ + quotedstr(Edit1.Text) + ´) and (ano = ´ + quotedStr(ComboBox1.Text) + ´)´); sql.add(´group by mes, ano, dataextenso, conta´); sql.add(´order by mes´); open;
O teste que fiz em outro micro o banco de dados é o mesmo e os codigos tambem, simplesmente só copiei deste micro para outro, só que neste aqui aparece o erro que citei acima.
Gradecido ajuda de todos.
JLima_Jrº
Jlimajr
Curtidas 0
Respostas
Jlimajr
29/06/2006
Page up
GOSTEI 0
Maikiperin
29/06/2006
verifique se no seu computador há algum vestígio da instalação do Interbase se já houver instalado o mesmo algum dia, ou até mesmo algum vestígio de alguma versão antiga do FB, caso positivo apague tudo e reinstale o FB (1.5.xx) novamente....lhe falo isso pq a função [b:58c940622b][i:58c940622b]coalesce[/i:58c940622b][/b:58c940622b] só foi implementada a partir da versão 1.5.xxxx.
Att, Maiki Perin.
Att, Maiki Perin.
GOSTEI 0
Jlimajr
29/06/2006
verifique se no seu computador há algum vestígio da instalação do Interbase se já houver instalado o mesmo algum dia, ou até mesmo algum vestígio de alguma versão antiga do FB, caso positivo apague tudo e reinstale o FB (1.5.xx) novamente....lhe falo isso pq a função coalesce só foi implementada a partir da versão 1.5.xxxx.
Att, Maiki Perin.
Vou verificar se existe, mais a principio acho que naum pois quando migrei para o firebird ja instalei a versão 1.5 e o interbase a versão 6.0, mesmo assim vou vasculhar aqui em minha maquina.
Grato por responder
GOSTEI 0
Helio Nascimento
29/06/2006
Colega, para que serve esta funçao COALESCE ?
GOSTEI 0
Jlimajr
29/06/2006
Serve para calcular valores em branco (nulos), sem o coalesce naum consigo fazer somar que contem valores nilos tipo 0,00. E no projeto que estou desenvolvendo preciso que calcule para jogar o valor pro saldo.
Olhe o código completo do SQL
Será que tem outra maneira de fazer esta soma, apezar de no meu computador de casa funcionar perfeitamente?
Obs: Naum funciona o coalesce no paradox.
Gradecido.
Olhe o código completo do SQL
procedure TForm3.Button1Click(Sender: TObject); var vsaldo : double; begin vsaldo:= 0; //-------------------------calculos soma de saldos----------------------------------- aguardedadoson; with dm.calculos do begin close; sql.clear; sql.add(´select mes, ano, dataextenso, conta, sum(coalesce(valord,0))as debito, sum(coalesce(valorc,0))as credito, (sum(coalesce(valord,0)) - SUM(coalesce(valorc,0)))as saldo from tbconta´); sql.add(´WHERE (conta = ´ + quotedstr(Edit1.Text) + ´) and (ano = ´ + quotedStr(ComboBox1.Text) + ´)´); sql.add(´group by mes, ano, dataextenso, conta´); sql.add(´order by mes´); open; dm.calculos.First; while not dm.calculos.Eof do begin vsaldo:=dm.calculos.fieldbyname(´saldo´).asFloat+vsaldo; dm.calculos.FieldByName(´mes´).asString:=dm.calculos.fieldbyname(´mes´).asString; dm.calculos.FieldByName(´ano´).asString:=dm.calculos.fieldbyname(´ano´).asString; dm.calculos.FieldByName(´debito´).asFloat:=dm.calculos.FieldByName(´debito´).AsFloat; dm.calculos.FieldByName(´credito´).asFloat:=dm.calculos.FieldByName(´credito´).AsFloat; dm.calculos.FieldByName(´saldo´).asFloat:=vsaldo; dm.calculos.Next; end; end; //-----------------------------------final codigo soma de calculo------------------------------- //------------soma totaldebitos--------------- with dm.somad do begin close; sql.clear; sql.add(´select sum(coalesce(valord,0))as totdebito from tbconta´); sql.add(´WHERE (conta = ´ + quotedstr(Edit1.Text) + ´) and (ano = ´ + quotedStr(ComboBox1.Text) + ´)´); open; end; //---------------------final soma debito------------ //------------soma totalcredito--------------- with dm.somac do begin close; sql.clear; sql.add(´select sum(coalesce(valorc,0))as totcredito from tbconta´); sql.add(´WHERE (conta = ´ + quotedstr(Edit1.Text) + ´) and (ano = ´ + quotedStr(ComboBox1.Text) + ´)´); open; end; //---------------------final soma credito------------ if DM.calculos.isempty then showmessage(´Nao há registro neste numero de conta. Por favor tente novamente´); aguardedadosoff; end;
Será que tem outra maneira de fazer esta soma, apezar de no meu computador de casa funcionar perfeitamente?
Obs: Naum funciona o coalesce no paradox.
Gradecido.
GOSTEI 0
Jlimajr
29/06/2006
Sobe mais uma vez...Problema ainda naum resolvido.
Duvida:´Coalesce funciona em alguns micros e em outros naum´.
Duvida:´Coalesce funciona em alguns micros e em outros naum´.
GOSTEI 0
Weber
29/06/2006
Seu problema realmente é de versão.
Desistale o FB.
Procure pela DLL gds32.dll e apague manualmente esta dll
Instale o FB novamente
Não enetendi o que você quer dizer com isto ´...migrei para o firebird ja instalei a versão 1.5 e o interbase a versão 6.0...´. Se você está dizendo que tem o IB e FB na mesma maquina seu problema está ai.
Desistale o FB.
Procure pela DLL gds32.dll e apague manualmente esta dll
Instale o FB novamente
Não enetendi o que você quer dizer com isto ´...migrei para o firebird ja instalei a versão 1.5 e o interbase a versão 6.0...´. Se você está dizendo que tem o IB e FB na mesma maquina seu problema está ai.
GOSTEI 0
Jlimajr
29/06/2006
Fico gradecido pela dica Sr Weber, agora sim resolveu tudo. Era isso mesmo. :D
GOSTEI 0