Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Parametros en firebird (https://www.clubdelphi.com/foros/showthread.php?t=14280)

BetoAlonso 15-09-2004 17:21:56

Parametros en firebird
 
Saludos estimados foristas

deseo saber si existe alguna manera de controlar la cantidad de parametros que envio a un SP, resulta que tengo un SP que en algunos casos va a requerir de 4 parametros y en algunos otros solo de 3 como le indico dentro del SP la tarea a realizar de acuerdo a la cantidad de parametros enviados.

gracias

mamcx 16-09-2004 00:51:08

Aunque no conozco si hay una funcion que cuente los parametros, no es simplemente:

if Param4 EstaVacio
else

???

AGAG4 16-09-2004 01:27:39

oki
 
Yo uso esta función para mandarle los parámetros que sea, pruebalo:
Código:

function EjecProc(SP:TIBStoredProc;ParamEntrada,ParamEBusqueda,ParamResultado:String; ContResult:Byte):String;
var x,y:byte;
begin
{**Parámetros
  Parámetros de Entrada, Parámetros de Busqueda, Parámetros de Salida(Resultado), Número de Resultados a Devolver}
  for y:=1 to 2 do
        for x:=1 to ContResult do
          Resultados[x,y]:='';
  sp.Prepare;
  ExtraerCamposDatos(ParamEntrada,ParamEBusqueda,ParamResultado);
  if ParamEntrada<>'' then begin
        if c>0 then
          for x:=1 to c do
                if (Campox[x]<>'') and (Datox[x]<>'') then
                  sp.ParamByName(campox[x]).value:=Datox[x];
  end;
  sp.ExecProc;
  if ContResult=1 then
        result:=sp.ParamByName(resultx[1]).AsString
  else
        if sp.RecordCount =1 then begin
          for x:=1 to ContResult do begin
                Resultados[x,1]:=sp.ParamByName(resultx[x]).AsString;
                if Resultados[x,1]='' then Resultados[x,1]:='1';
          end
        end else
          for y:=1 to sp.RecordCount do begin
                for x:=1 to ContResult do begin
                  Resultados[x,y]:=sp.ParamByName(resultx[x]).AsString;
                  if Resultados[x,y]='' then Resultados[x,y]:='1';
                end;
                sp.Next;
          end;
end;
(***********************************************************************************

Resultados[]: Es un Arreglo de 2 dimensiones de tipo String.
ExtraerCamposDatos : Es una función que te separa los parámetros, poniendole comas(,) en las separaciones, por ejemplo:
Parametro de Entrada: Clave,Nombre,Dirección

Espero te Ayude. Sino estoy a sus ordenes.


La franja horaria es GMT +2. Ahora son las 08:19:17.

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