GARANTIR DESCONTO

Fórum UDF´s migradas do firebird 2.5 para 3.0 #562676

21/09/2016

0

caros colegas, a uns tempos atras fiz algumas migrações de alguns bancos de dados para o firebird 3.0. Em meus sistemas utilizo funcoes externas com UDF´s porem nessa migração algumas apresentaram erros nos quais consegui arrumar, agora tem uma função que nao consigo de maneira alguma, segue abaixo a funcao que estou tentando utilizar

function udf_StrZero(Valor,Qtd: Integer): PAnsiChar; cdecl; export;
Var Zeros :Integer;
Aux,Numero :AnsiString;
I :Integer;
begin
Zeros := (Qtd - Length(InttoStr(Valor)));
Numero := '';
Aux := InttoStr(Valor);
For I := 1 to Zeros do
Numero := Numero + '0';
Numero := Numero + Aux;
Result := PAnsiChar(AnsiString(Numero));
End;

nas outras funcoes que estavam dando erro o problema era na variavel de retorno que estava PChar e retornava somente um caracteres mudei para PAnsiChar e resolveu agora nessa funcao mesmo fazendo a mesma mudança nao consigo, se eu pegar a variavel de entrada "VALOR" e retornar sem adicionar os zeros a esquerda nao da erro porem se se usar o loop para montar a string com os zeros me retorna a mensagem de erro firebird.msg not found e a conexao fecha. se alguem poder me ajudar criando uma funcao que de fato rode na udf para firebird 3.0 ficaria muito grato.
Sergio Back

Sergio Back

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar