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
dá o erro
o que eu fiz de errado?
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
Curtir tópico
+ 0
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:
mas a outra não consegui fazer funcionar de jeito nenhum:
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!
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
Clique aqui para fazer login e interagir na Comunidade :)