[firebase-br] Problema com Firebird 2.1

Rodrigo dominio em engeplus.com.br
Sex Nov 21 08:28:36 -03 2008


Bom dia Eduardo,

Tentei usar o Replace mas deu o seguinte erro:

"Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.Dynamic SQL Error.
expression evaluation not supported.
Transaction rolled back."

De qualquer forma, obrigado.

Rodrigo


----- Original Message ----- 
From: "Eduardo Bahiense" <eduardo em icontroller.com.br>
To: <lista em firebase.com.br>
Sent: Thursday, November 20, 2008 9:14 PM
Subject: Re: [firebase-br] Problema com Firebird 2.1


Tente assim:

Cast(REPLACE(VTotal, ',', '.') as Numeric(8,2))


Eduardo


Rodrigo escreveu:
> Boa Noite a Todos...
> Estou com o seguinte problema,
> Migrei o Firebird 1.5 para o 2.1 e algumas procedures que funcionavam bem
> antes agora estao com problemas:
> Ex.  tenho um Cast(VTotal as Numeric(8,2))
>
> onde VTotal é um Varchar(20) com a string 20,00.
>
> Quando vai converter exibe erro.
> Overflow occurred during data type conversion.conversion error from string
> "20,00".
>
> Dae se mudar para 20.00 funciona.
>
> Entao resolvi fazer uma UDF pra fazer a conversão, fiz do seguinte modo:
>
> na unit Func:
>
> unit Func;
>
> interface
>
> function TrocaVirgPonto(Valor: string): string; cdecl; export;
>
> implementation
>
> function TrocaVirgPonto(Valor: string): string;
> var  i: integer;
> begin
>     try
>     for i := 1 to Length(Valor) do
>     if Valor[i] = ',' then
>     Valor[i] := '.';
>     except
>     //
>     end;
>     Result := valor;
> end;
>
> end.
>
> e no projeto:
>
> library Funcoes;
> uses
>  SysUtils,
>  Classes,
>  IB_Utils,
>  Func in 'Func.pas';
>
> {$R *.res}
>
> exports
> TrocaVirgPonto;
>
> begin
> end.
>
> no registro fiz assim:
> declare external function Func
> cstring(64)
> returns cstring(64) free_it
> entry_point 'TrocaVirPonto' module_name 'Funcoes.dll"';
>
>
> Só que sempre que vou usar a função cai o servidor Firebird...
>
> Se alguem puder dar uma ajuda...
>
> Atenciosamente,
> Rodrigo
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: 
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa

__________ NOD32 3628 (20081120) Information __________

This message was checked by NOD32 antivirus system.
http://www.eset.com






Mais detalhes sobre a lista de discussão lista