Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-06-2014
DasGrun DasGrun is offline
Miembro
 
Registrado: abr 2008
Posts: 109
Poder: 17
DasGrun Va por buen camino
Insertar datos desde un SP

Hola Nuevamente,

Tengo dos Tablas Maestro, detalle. donde Maestro se ejecuta un SP lo que hace es insertar datos a la tabla De detalle, se hace por este SP.
Código SQL [-]
CREATE PROCEDURE SP_EMP_DEPTO_PRY(
  N_DEPTO SMALLINT DEFAULT NULL,
  N_ID_PROYECTO SMALLINT DEFAULT NULL)
AS
DECLARE VARIABLE ID_EMPLEADO BIGINT;
DECLARE VARIABLE SALARIO NUMERIC(18, 2);
BEGIN
  /* Procedure body */
FOR
     SELECT
       EMPLEADOS.ID_EMPLEADO,
       EMPLEADOS.SALARIO
                        FROM
                          EMPLEADOS
      INNER JOIN PUESTO ON (EMPLEADOS.ID_PUESTO = PUESTO.ID_PUESTO)
      INNER JOIN DEPARTAMENTO ON (PUESTO.ID_DEPTO = DEPARTAMENTO.ID_DEPTO)
      INNER JOIN PROYECTO ON (EMPLEADOS.ID_PROYECTO = PROYECTO.ID_PROYECTO)
            WHERE
              DEPARTAMENTO.ID_DEPTO = :N_DEPTO AND
              EMPLEADOS.ID_PROYECTO = :N_ID_PROYECTO

     INTO
         :ID_EMPLEADO,
         :SALARIO
      DO
 EXECUTE PROCEDURE SP_INSERTAR_EMP_PLANILLA(:ID_EMPLEADO, :SALARIO);
 
    BEGIN
    SUSPEND;
  END
END;

y aqui esta la Inserccion de los datos por medio de otro SP.

Código SQL [-]
CREATE PROCEDURE SP_INSERTAR_EMP_PLANILLA(
  ID_EMPLEADO BIGINT DEFAULT NULL,
  SALARIO NUMERIC(18, 2) DEFAULT NULL,
  ID_PLANILLA BIGINT DEFAULT NULL)
AS
DECLARE VARIABLE CANT_25 NUMERIC(18, 2);
DECLARE VARIABLE CANT_50 NUMERIC(18, 2);
DECLARE VARIABLE CANT_75 NUMERIC(18, 2);
DECLARE VARIABLE CANT_100 NUMERIC(18, 2);
BEGIN
  /* Procedure body */
    INSERT INTO DETALLE_PLANILLA(ID_PLANILLA,ID_EMPLEADO, CANT_25, CANT_50, CANT_75, CANT_100, SALARIO)
       VALUES (:ID_PLANILLA, :ID_EMPLEADO, 0.00, 0.00, 0.00, 0.00, :SALARIO);
 END;

Me Inserta los Datos Correctamente en la Tabla de Detalle, Mi Consulta es:
  • Como inserto Un Campo que no esta relacionado con el SP.
  • Como inserto el Campo de Primary Key de la Tabla Maestro a la tabla Detalle.

Muchas Gracias.
__________________
Hasta Mis Huesos son Codificados?
Responder Con Cita
  #2  
Antiguo 04-06-2014
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
No se entiende lo que preguntas

•Como inserto Un Campo que no esta relacionado con el SP.
¿Quieres agregar un campo a la tabla o rellenar un campo de la tabla en un insert?
¿De dónde sale la información para ese campo?
¿De qué campo se trata?
¿Es parte de alguna de las tablas que mencionas?
En los procedimientos tienes unas variables, con ellas buscas datos y los insertas en tablas. Las variables no están en las tablas, por lo que no entiendo qué es lo que preguntas.

La respuesta que se me ocurre es que lo agregues a los campos en el INSERT.
INSERT INO MAESTRO (A, B, C, CampoNoRelacionado) VALUES (1, 2, 3, 'Otro Valor');


•Como inserto el Campo de Primary Key de la Tabla Maestro a la tabla Detalle.
Supongo que ID_EMPLEADO es el campo PK de la tabla MAESTRO.
Supongo que la tabla detalle es DETALLE_PLANILLA.
Por lo que veo le pasas al procedimiento SP_INSERTAR_EMP_PLANILLA esta información y luego haces el insert.
Por esto no entiendo la pregunta.
Responder Con Cita
  #3  
Antiguo 07-06-2014
DasGrun DasGrun is offline
Miembro
 
Registrado: abr 2008
Posts: 109
Poder: 17
DasGrun Va por buen camino
Muchas Gracias estimado por Su Repuesta.

•Como inserto Un Campo que no esta relacionado con el SP. Lo Explico.
Tengo dos tablas que son Maestro-Detalle.
* se quiere insertar Campos en la tabla de Detalle Del Resultado que presente el SP.
* EL SP SP_EMP_DEPTO_PRY Lo Que Hace es Que presenta Resultados siempre y cuando se cumpla los dos Parametros
WHERE
DEPARTAMENTO.ID_DEPTO = :N_DEPTO AND
EMPLEADOS.ID_PROYECTO = :N_ID_PROYECTO

* El resultado de los Campos son:
INTO
:ID_EMPLEADO,
:SALARIO


Estos Resultados son Insertado a la tabla de Detalle por medio del SP_INSERTAR_EMP_PLANILLA
* Que Campo Son Insertado ID_EMPLEADO y SALARIO.

Hasta aquí el SP hace un Buen Trabajo.

En la tabla de Maestro - Detalle hay un Campo llamada ID_Planilla que es el campo que se relaciona estas dos tablas. Necesito Insertar este campo PK de la Tabla Maestro a la Tabla de Detalle por cada Registro Insertado del SP_INSERTAR_EMP_PLANILLA.

Muchas Gracias.
__________________
Hasta Mis Huesos son Codificados?

Última edición por DasGrun fecha: 07-06-2014 a las 18:07:02.
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
Insertar datos en una base de datos desde delphi con sql angelvazv Conexión con bases de datos 16 08-05-2012 19:25:20
insertar datos desde una pistola laser eduardo360 Servers 4 20-04-2008 03:04:44
Insertar Datos a un campo de la base de datos desde un DBEdit saltamirano Varios 11 12-12-2007 17:29:35
Insertar datos desde un DBGrid Maury Manosalva Conexión con bases de datos 0 09-01-2007 23:44:52
insertar datos en una tabla desde otra Giniromero SQL 5 17-06-2004 19:37:16


La franja horaria es GMT +2. Ahora son las 18:32:59.


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