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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-02-2014
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 948
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
  #2  
Antiguo 01-03-2014
NISOTO NISOTO is offline
Miembro
NULL
 
Registrado: abr 2012
Ubicación: RIOHACHA - LA GUAJIRA
Posts: 27
Poder: 0
NISOTO Va por buen camino
Ok, gracias

ya probe el procedimiento almacenado, y funciona muy bien.

Te agradezco, es verdad que este script funciona mas.

Gracias clubdelphi, es mejor que tener un profesor en casa....
Responder Con Cita
Respuesta


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 13:46:10.


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