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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-07-2007
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 22
sitrico Va por buen camino
Question Verificar si un registro existe al insertarlo desde un procedimiento

Tengo el siguiente procedimiento

Código SQL [-]
SET TERM ^ ;

CREATE PROCEDURE COPIARRUBROSXGRUPO (
    grupoorigen smallint,
    grupodestino smallint)
as
declare variable elcodrubro varchar(10);
declare variable elrubro varchar(50);
declare variable elidtiporubro smallint;
declare variable elidrubro integer;
declare variable elperiodo smallint;
declare variable elmonto numeric(18,5);
begin
-- copiar los rubros y montos de un grupo a otro
  For select codrubro, rubro, idtiporubro, periodo, monto
  from montoderubros -- montoderubroa es una vista que agrupa todos los archivos requeridos
  Where idgruporub = :grupoorigen
  into :elcodrubro, :elrubro, :elidtiporubro, :elperiodo, :elmonto do
     begin
     -- Validar si ya el rubro existe si no hay que crearlo
     Select IdRubro FROM rubros
     Where CodRubro = :elcodrubro And rubro = :elrubro And
           idgruporub = :grupodestino And idtiporubro = :elidtiporubro
     into :elidrubro;
     if (elidrubro is null) then
        Begin
        -- generar el nuevo ID
        elidrubro = gen_id(gen_rubros_id,1);
        Insert into rubros
           (idrubro, codrubro, rubro, idgruporub, idtiporubro) values
           (:elidrubro, :elcodrubro, :elrubro, :grupodestino, :elidtiporubro);
        End
     -- copiar los montos por periodo
     Insert Into montosrubros
        (idrubro, periodo, monto) values
        (:elidrubro, :elperiodo, :elmonto);
     End
end^

SET TERM ; ^

El procedimiento debe copiar los rubros y montos (2 tablas) desde un idgruporub a otro (ver parametros de entrada), antes de la validación funcionaba bien para 1 sólo periodo, para más de uno da error: clave duplicada en el archivo de rubros al copiar el segundo periodo)

encontré este post con el mismo caso pero no me sirve

alguna ayuda??

Gracias
__________________
Sitrico
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
verificar con procedimiento almacenado fedelphi Firebird e Interbase 3 15-05-2007 22:10:28
Verificar registro con trigger fedelphi Firebird e Interbase 3 20-12-2006 12:57:43
Verificar si una imagen existe mcarazas Varios 36 10-08-2006 13:38:05
Existe el procedimiento perfecto? jam888 Varios 2 09-10-2004 00:40:43
Como verificar si un txt existe? danytorres Varios 1 02-12-2003 15:51:20


La franja horaria es GMT +2. Ahora son las 06:31:47.


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