Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 28-02-2014
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 947
Poder: 25
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Amigo NISOTO, si me permite le sugiero intente realizar este proceso de actualización con un procedimiento almacenado.

A mi humilde opinión es más optimo que el que propone usted.

Adjunto script sql, no le he provado debido a lo cual es posible que pueda tener algun error. No dude en consultar.

Ademas usted debe completar los campos que faltan y definir los tipos correspondientes a las variables declaradas.

Código SQL [-]
CREATE OR ALTER PROCEDURE SP_UPDATENOTAS()
AS
--Declaración de las variables locales
DECLARE VARIABLE ID_NOTA INTEGER; --Identificador del registro de NOTAS 
DECLARE VARIABLE AULAS INTEGER;

DECLARE VARIABLE MATERIA_UNO VARCHAR(20); --Definir tipo correcto
DECLARE VARIABLE IHS_UNO INTEGER;
DECLARE VARIABLE DOCENTE_UNO VARCHAR(10);
...
DECLARE VARIABLE MATERIA_DOCE VARCHAR(20);
DECLARE VARIABLE IHS_DOCE INTEGER;
DECLARE VARIABLE DOCENTE_DOCE VARCHAR(10);

BEGIN
  FOR SELECT ID_NOTA, AULAS 
    FROM NOTAS
    INTO :ID_NOTA, :AULAS
  DO
  BEGIN
     --Recupera información del salon correspondiente a :AULAS
     SELECT MATERIA_UNO, IHS_UNO, DOCENTE_UNO, 
        MATERIA_DOS, IHS_DOS, DOCENTE_DOS, ....
        MATERIA_DOCE, IHS_DOCE, DOCENTE_DOCE
     FROM SALONES 
     WHERE SALONES.ID_SALON=:AULAS
     INTO :MATERIA_UNO, :IHS_UNO, : DOCENTE_UNO, 
          :MATERIA_DOS, :IHS_DOS, : DOCENTE_DOS, ....
        :MATERIA_DOCE, : IHS_DOCE, : DOCENTE_DOCE;
     
     UPDATE NOTAS
         SET ASIGNATURA_UNO=:MATERIA_UNO,
          INTENSIDAD_UNO=:IHS_UNO,
          PROFESOR_UNO   =:  DOCENTE_UNO,
           
          ASIGNATURA_DOS=:MATERIA_DOS,
          INTENSIDAD_DOS=:IHS_DOS,
          PROFESOR_DOS   =: DOCENTE_DOS,
           ...
          ASIGNATURA_DOCE=:MATERIA_DOCE,
          INTENSIDAD_DOCE=:IHS_DOCE,
          PROFESOR_DOCE   =: DOCENTE_DOCE
     WHERE NOTAS.ID_NOTA=:ID_NOTA; --Debe especificar la clave del registro nota para su correcta actualización...
  END
END

Para ejecutar el procedimiento almacenado debería utilizar un

Código Delphi [-]
//Usando TIBStoredProc1, de la paleta Interbase.

DMCarga.IBStoredProc1.StoreProcName:='SP_UPDATENOTAS';
DMCarga.IBStoredProc1.ExecProc;
DMCarga.ibtrnsctn_Calificacion.CommitRetaining;

ShowMessage('Operacion realizada con exito...');
Ejemplos hay varios en el foro

Saludos cordiales

Última edición por cloayza fecha: 28-02-2014 a las 18:40:35.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Problema con el UPDATE XcamX Conexión con bases de datos 12 21-12-2010 00:32:48
Problema con update agustin173 Varios 3 26-10-2010 00:22:11
Problema con sql Update juanpe Firebird e Interbase 3 04-09-2008 12:31:00
Problema con update omarifr SQL 3 06-08-2007 23:28:38
Problema con update pache Firebird e Interbase 4 22-11-2006 21:08:06


La franja horaria es GMT +2. Ahora son las 17:55:37.


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