Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   elevar a 'n' un número (https://www.clubdelphi.com/foros/showthread.php?t=51882)

toito_lucho 03-01-2008 02:24:19

elevar a 'n' un número
 
hola soy nuevo en esto de FireBird, pero me esta empezando a gustar
bueno el problema q tengo es q no encuentro una funcion de potencia, es decir q elevar a cualquier numero un determinado real, anteriormente utilizaba sr_power, pero ahora creo que solo existe la funcion para la raiz cuadrado, perdon por la ignorancia, pero necesito ese favor, ojala y alguien
me heche una manito, de antemano gracias a todos los del foro

defcon1_es 03-01-2008 10:09:42

Buenos dias.

Debes registrar la funcion power que viene definida en la librería fbudf.dll
Para ello puedes actualizar tu base de datos con el fichero fbudf.sql
o ejecutar el siguiente codigo sql en tu base de datos:
Código SQL [-]
--FBUDF_API paramdsc* power(paramdsc* v, paramdsc* v2, paramdsc* rc)
declare external function dPower
double precision by descriptor, double precision by descriptor,
double precision by descriptor
returns parameter 3
entry_point 'power' module_name 'fbudf';

Ambos ficheros se instalan en la carpeta UDF de Firebird.

Un saludo y feliz navidad

duilioisola 03-01-2008 13:17:07

También puedes crear una función:

Código SQL [-]
create procedure elevar (base double precision, potencia double precision)
returns (resultado doublre precision)
as
begin
   resultado = base;
   while (potencia > 1) do
   begin
      resultado = resultado * base;
      potencia = potencia - 1;
   end
end
Código SQL [-]
select resultado from elevar(2,3) from rdb$database
Código SQL [-]
create procedure / trigger ...
as
declare variable total double precision;
begin
   [...]
   execute procedure elevar(2,3) returning_values(:total);
   [...]
end


La franja horaria es GMT +2. Ahora son las 08:56:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi