Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-10-2006
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Poder: 18
efelix Va por buen camino
Delphi y los procedimientos almacenados

Hola a todos, muchos saludos. Trabajo con delphi 7 y Microsoft Sql Server 2000. Tengo el siguiente procedimiento almacenado:
Código SQL [-]
CREATE PROCEDURE spEdadCuentasporPagar  
               @Edad int,
               @Edad1 int = NULL
AS
 IF (@Edad1 IS  Null)
 begin
    SELECT @Edad1 = 0
  end
IF (@Edad >= 90)
BEGIN
  SELECT     IdFactura, Descripcion, IdProveedor, Importe, DATEDIFF(day, FechaRecepcion, GETDATE()) AS Dia, Aplicada
  FROM         Facturas
  WHERE     (Aplicada = 0) AND DATEDIFF(day, FechaRecepcion, GETDATE())>=@Edad 
END
ELSE
BEGIN
  SELECT     IdFactura, Descripcion, IdProveedor, Importe, DATEDIFF(day, FechaRecepcion, GETDATE()) AS Dia, Aplicada
  FROM         Facturas
  WHERE     (Aplicada = 0) AND  DATEDIFF(day, FechaRecepcion, GETDATE())>=@Edad AND DATEDIFF(day, FechaRecepcion, GETDATE())<=@Edad1
END
GO
Que me devuelve un conjunto de registros que cumplen con la condición que lleva implicita el procedimiento. Y tengo otro procedimeinto almacenado construído de la sgte forma:
Código SQL [-]
CREATE PROCEDURE spImporteTotalEdadCuentasxPagar
               (@Dias integer,
               @Dias1 integer, 
               @Importe money OUTPUT)       
 AS
SELECT @Importe=IsNull(Sum(Importe),0)
FROM Facturas
WHERE(Aplicada=0) AND DATEDIFF(day,FechaRecepcion, GETDATE())>=@Dias AND DATEDIFF(day,FechaRecepcion, GETDATE())<=@Dias1
GO
El primer procedimiento me devuelve el conjunto de facturas que están sin pagar dentro del rango de días que se le específique, que puede ser 0-30,30-60,60-90 y mas de 90 días. Y el segundo lo cnstruí con la finalidad de que me devoviera el importe total de las facturas sin pagar. Esto funciona bien en sql server 2000, es decir cada procedimiento por separado lo ejecuto pasandóle los parámetros correspondientes y me dan los resultados deseados. Ahora en delphi tengo un formulario con un ado connection, un ado stored procedure, un dbgrid, tres edit y un botón de comando y por supuesto un data source, a través del siguiento código logro que el dbgrid se me llene con los datos que me devuelve el primer procedimiento almecenado:
Código Delphi [-]
begin
  ADOSPEdadCuentas.Close;
  ADOSPEdadCuentas.Parameters.ParamByName('@Edad').Value := StrToInt(EditEdad2.Text);
  if StrToIntDef(EditEdad2.Text,0) = 90 then
  begin
     ADOSPEdadCuentas.Parameters.ParamByName('@Edad1').Value := VarNull;
  end
  else
     ADOSPEdadCuentas.Parameters.ParamByName('@Edad1').Value := StrToInt (EditEdad1.Text);
  ADOSPEdadCuentas.Open;
end;
El segundo procedimiento almacenado lo tengo nada más para que me devuelva el total de las facturas sin pagar, y pienso asignarle el valor de este parámetro a un edit, ahora mi duda es la siguiente puedo manipular ambos procedimientos dentro de las mismas líneas de códigos anteriores?. Puesto como pueden pareciar este segundo procedimiento almacenado tiene un parámetro de salida y para hecerlo tendría que ejecutar el método execpro para que funcione, al menos eso es lo que tengo entendido, el hecho es que se me complica un tanto esto y aveces cuando trato de hacerlo me genera varios errorres. Ojala me hayan enetendido y puedan ayudarme a encontrar una solución. A lo mejor en vez de dos con un solo procedmiento almecenado yo podría resolver esto. Pero hasta el momento no se como hacerlo. Muchas gracias y disculpen mi desconocimiento.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Procedimientos almacenados AS/400 Carlos A Ortega DB2 1 12-12-2006 00:32:39
procedimientos almacenados datorar Conexión con bases de datos 8 03-01-2006 17:05:43
Procedimientos almacenados en delphi con storeprocedure pgl Firebird e Interbase 7 05-11-2005 00:58:53
procedimientos almacenados Gabriel2 SQL 1 13-01-2005 14:50:09
Procedimientos Almacenados Gabriel A Reyes MS SQL Server 5 07-07-2003 14:08:46


La franja horaria es GMT +2. Ahora son las 18:05:16.


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
Copyright 1996-2007 Club Delphi