Fórum Não consigo usar minha UDF #55031

31/01/2006

0

estou estudando UDF´s, por isso criei uma UDF bem facil e trivial, chamada copia que é igual a função copy do delphi.

ao tentar executar a função no sql

select copia(razao, 1, 6) from clientes


dá o erro

Access to UDF library ´pFuncoesFB.DLL´ is denied by server administrator Statement: select copia(razao, 1, 6) from clientes



o que eu fiz de errado?


Vitor Rubio

Vitor Rubio

Responder

Posts

31/01/2006

Thomaz_prg

Tente passar privilégios para a UDF (Grant).


Responder

Gostei + 0

01/02/2006

Vitor Rubio

Não faço idéia de como se faz isso, mas eu coloquei minha dll na pasta UDF do firebird e funcionou. Queria fazer funcionar em outro diretorio, mas eu coloquei no firebird.conf a configuração:

UdfAccess = restrict <minha pasta>
ou então
UdfAccess = full

e não funcionou, nenhum dos dois jeitos.
fiz uma função que funcionou legal:

function copia(Str: PChar; var Indice, contador: integer): PChar; cdecl; export;
begin
  Result := Str;
  StrPCopy(Str, Copy(Str, indice, contador));
end;


mas a outra não consegui fazer funcionar de jeito nenhum:

function iif(var expressao: integer; var SeVerdadeiro, SeFalso: integer): integer; cdecl; export;
begin
  if expressao <> 0 then
    result := SeVerdadeiro
  else
    result := SeFalso;
end;


eu queria passar um integer, se fosse diferente de 0, ele retornaria um primeiro argumento integer, se fosse igual a 0, ele traria um segundo argumento.

desse jeito não funcionou, mas na verdade nem era isso que eu queria fazer, eu queria que o primeiro argumento fosse boolean na verdade, e que eu pudesse passar uma expressão. Tem como?

vlw!


Responder

Gostei + 0

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

Aceitar