Muchas gracias a todos por sus respuestas, da cada uno de ustedes he aprendido algunas cosas nuevas. El segundo procedimiento almacenado lo he modificado de la siguiente manera:
Código SQL
[-]
CREATE PROCEDURE spImporteTotalEdadCuentasxPagar
(@Dias integer,
@Dias1 integer = NULL,
@Importe money OUTPUT)
AS
IF (@Dias>=90)
BEGIN
SELECT @Importe=IsNull(Sum(Importe),0)
FROM Facturas
WHERE(Aplicada=0) AND DATEDIFF(day,FechaRecepcion, GETDATE())>=@Dias
END
ELSE
BEGIN
SELECT @Importe=IsNull(Sum(Importe),0)
FROM Facturas
WHERE(Aplicada=0) AND DATEDIFF(day,FechaRecepcion, GETDATE())>=@Dias AND DATEDIFF(day,FechaRecepcion, GETDATE())<=@Dias1
END
GO
Para el caso de que se quiera ver el importe total de las facturas com mas de 90 días. El otro procedimiento almacenado (el primero), se ha quedado igual. Ahora que me sucede, vean el código del evento click del botón de coamndo en el formulario:
Código Delphi
[-]
begin
ADOSPEdadCuentas.Close;
ADOSPEdadCuentas.Parameters.ParamByName('@Edad').Value := StrToInt(Trim(EditEdad2.Text));
ADOSPImporteCuentasxPagar.Parameters.ParamByName('@Dias').Value := StrToInt(Trim(EditEdad2.Text));
if StrToIntDef(EditEdad2.Text,0) = 90 then
begin
ADOSPEdadCuentas.Parameters.ParamByName('@Edad1').Value := VarNull;
ADOSPImporteCuentasxPagar.Parameters.ParamByName('@Dias1').Value := VarNull;
end
else
begin
ADOSPEdadCuentas.Parameters.ParamByName('@Edad1').Value := StrToInt (Trim(EditEdad1.Text));
ADOSPImporteCuentasxPagar.Parameters.ParamByName('@Dias1').Value := StrToInt (Trim(EditEdad1.Text));
ADOSPImporteCuentasxPagar.ExecProc;
EditImporte.Text := ADOSPImporteCuentasxPagar.Parameters.ParamValues ['@Importe'];
ADOSPEdadCuentas.Open;
end;
end;
Recuerden que el segundo procedimiento almacenado es solamente para que me de el total según el rango de edad que haya puesto, bueno esto me funciona perfectamente bien, siempre que en los dos edit ponga valores, exceptuando cuando en el primer edit pongo el valor 90, que solamente debe darme las facturas con mas de 90 días y pasar el valor del parámetro de salida al edit que he establecido para ello, pero no es así, cuando pongo 90 en el primer edit y hago click no se me genera ningún error, pero no me muestra ningún resultado, y el edit donde va a parar el importe total se queda con el valor anterior, por ejemplo si pongo entre 30-60 días me muestra en el dbgrid las faturas pendientes de pago para ese rango y me totaliza en el edit el importe total para este rango, sin embargo cuando pongo 90 en el primer edit y hago click no me muestra nada y se queda en el edit el resultado anterior, y en la base de datos hay 4 facturas con mas de 90 días sin pagar. He chequeado el código varias veces y no veo donde puede estar el problema. Disculpen tanta molestia, espero puedan ayudarme una vez mas.