Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-06-2007
rruffino rruffino is offline
Miembro
 
Registrado: dic 2004
Ubicación: Berrotaran, Cordoba - Argentina
Posts: 215
Poder: 21
rruffino Va por buen camino
Consulta procedimientos almacenados

Hola gente, estoy desarrollando mi primer cliente/servidor en interbase. Tengo unos 2000 usuarios a los cuales necesito generar la facturacion a todos en un determinado momento. Como la mayoria de los datos de los comprobantes son iguales (fecha de emision, periodo, vencimientos, etc) estoy pensando en hacer un procedimiento al que le pase esos valores y me genere los comprobantes para cada uno de los usuarios.
Mi idea es primero obtener todos los usuarios que estan en condiciones de ser facturados. Luego, por cada usuario, obtener los conceptos a facturar y generar la correspondiente factura. El tema es que no me doy cuenta como realizar esos anidamientos ya que de las formas en que probe y las bibliografias que consulte no encuentro nada parecido a lo que quiero hacer.
Hasta ahora esto es lo que tengo:

CREATE PROCEDURE GENERAR_COMPROBANTES (
FECHA_EMISION DATE,
FECHA_DESDE DATE,
FECHA_HASTA DATE,
PERIODO VARCHAR (15),
APLICA_MAYOR_COSTO SMALLINT)
RETURNS (
ID_USR INTEGER)
AS
declare variable NUM_USUARIO INTEGER;
BEGIN
/*Selecciono usuarios activos*/
for select id_usuario from usuario
where usuario.estado=0
into :ID_USR do

y aca deberia empezar a seleccionar de otras tablas, pero no me funciona.
Desde ya les agradezco y espero una respuesta.
Graciasssss.
Responder Con Cita
  #2  
Antiguo 26-06-2007
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 20
kuan-yiu Va camino a la fama
En Delphi es muy sencillo.
Creas una consulta que te devuelva los usuarios "facturables" y usas un bucle para lanzar una nueva consulta que te devuelva los datos de la factura.
Responder Con Cita
  #3  
Antiguo 26-06-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Sin saber detalles de tablas y el procedimiento que debes seguir es difícil, pero bueno:
Código SQL [-]

CREATE PROCEDURE GENERAR_COMPROBANTES (
FECHA_EMISION DATE,
FECHA_DESDE DATE,
FECHA_HASTA DATE,
PERIODO VARCHAR (15),
APLICA_MAYOR_COSTO SMALLINT)
RETURNS (
ID_USR INTEGER)
AS
declare variable NUM_USUARIO INTEGER;
BEGIN
/*Selecciono usuarios activos*/
for select id_usuario from usuario
where usuario.estado=0
into :ID_USR do
begin /* por cada usuario que cumpla el criterio anterior, seleccionamos los conceptos */

   for select id_concepto, conceptos from tablaConceptos
   where tablaConceptos.id_usuario = :ID_USR into :Concepto do
   begin
      insert into factura(id_factura, concepto, id_usuario) 
      values (null, :Concepto, :ID_USR)
/* suponemos que la tabla factura tiene un trigger before insert
   que le dará un valor a su clave primaria id_factura */
   end;
end;

Más o menos, esa puede ser la idea, aunque el procedimiento sea totalmente distinto.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 26-06-2007
rruffino rruffino is offline
Miembro
 
Registrado: dic 2004
Ubicación: Berrotaran, Cordoba - Argentina
Posts: 215
Poder: 21
rruffino Va por buen camino
Cool Probare

Gracias Lepe, probare tu idea. Hacerlo desde delphi me parece que va a carecer de sentido mi cliente/servidor. La idea es hacerlo con procedures en la base. Es mas lo habia hecho en un comienzo desde delphi, pero demora bastante (cerca de 5 minutos para generar los 2000 comprobantes)
Saludos y gracias!!
Responder Con Cita
Respuesta



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 UREÑA SQL 3 07-03-2007 22:19:24
Procedimientos almacenados AS/400 Carlos A Ortega DB2 1 12-12-2006 00:32:39
procedimientos almacenados davidgaldo SQL 7 09-11-2006 17:28:33
procedimientos almacenados datorar Conexión con bases de datos 8 03-01-2006 17:05:43
procedimientos almacenados Gabriel2 SQL 1 13-01-2005 14:50:09


La franja horaria es GMT +2. Ahora son las 06:25:00.


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