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 Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-12-2011
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 585
Poder: 20
jafera Va por buen camino
Creacion de un Stored Procedure

Buenas tardes.

Esta es mi primera incursion en los stored procedures.

Tengo una tabla maestra CU0001E de la que quiero sacar los valores de los campos C11, C10, C5, C6, C7 y C13.
Despues en la tabla destino CU0001 quiero hacer un update para que me actualize los campos LLICENCIA, NOM, COGNOM1, COGNOM2 y CODIUCI, siempre que se cumpla la condicion DNI=NI.

Este es el codigo del SP

Código SQL [-]
 
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;
/* Stored procedures */
CREATE PROCEDURE "ACTUALITZA_RFEC" 
(
  "LLICENCIA" VARCHAR(14) CHARACTER SET ISO8859_1,
  "NOM" VARCHAR(20) CHARACTER SET ISO8859_1,
  "COGNOM1" VARCHAR(25) CHARACTER SET ISO8859_1,
  "COGNOM2" VARCHAR(25) CHARACTER SET ISO8859_1,
  "CODIUCI" VARCHAR(12) CHARACTER SET ISO8859_1
)
AS
BEGIN EXIT; END ^

ALTER PROCEDURE "ACTUALITZA_RFEC" 
(
  "LLICENCIA" VARCHAR(14) CHARACTER SET ISO8859_1,
  "NOM" VARCHAR(20) CHARACTER SET ISO8859_1,
  "COGNOM1" VARCHAR(25) CHARACTER SET ISO8859_1,
  "COGNOM2" VARCHAR(25) CHARACTER SET ISO8859_1,
  "CODIUCI" VARCHAR(12) CHARACTER SET ISO8859_1
)
AS
declare variable dni_1 varchar(12) character set iso8859_1;
declare variable llicencia_1 varchar(14) character set iso8859_1;
declare variable nom_1 varchar(20) character set iso8859_1;
declare variable cognom1_1 varchar(25) character set iso8859_1;
declare variable cognom2_1 varchar(25) character set iso8859_1;
declare variable codiuci_1 varchar(12) character set iso8859_1;
begin
  SELECT C11, C10, C5, C6, C7, C13
FROM CU0001E
INTO NI_1, :LLICENCIA_1, :NOM_1, :COGNOM1_1, :COGNOM2_1, :CODIUCI_1;
BEGIN
UPDATE CU0001
SET LLICENCIA=:LLICENCIA_1, NOM=:NOM_1, COGNOM1=:COGNOM1_1, COGNOM2=:COGNOM2_1, CODIUCI=:CODIUCI_1
WHERE DNI=NI_1;
END
 SUSPEND;
end
 ^
SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;

Total que cuando lo llamo desde Delphi
Código Delphi [-]
 
F_ModulDades.Actualitza_RFEC.ExecProc;
me da un error "Required Param Value Not Set"
No se si me he olvidado algo, si he colocado las sentencias correctamente, etc...
Delphi 6 Firebird 1.5 componentes IBX
Responder Con Cita
  #2  
Antiguo 02-12-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Así a simple vista creo que te sobran los begin, end y suspend;
Código SQL [-]
begin   
  SELECT C11, C10, C5, C6, C7, C13   
  FROM CU0001E   
  INTO : DNI_1, :LLICENCIA_1, :NOM_1, :COGNOM1_1, :COGNOM2_1, :CODIUCI_1;    

  UPDATE CU0001   
  SET LLICENCIA=:LLICENCIA_1, NOM=:NOM_1, COGNOM1=:COGNOM1_1, COGNOM2=:COGNOM2_1, CODIUCI=:CODIUCI_1   
  WHERE DNI= : DNI_1; 
end
Responder Con Cita
  #3  
Antiguo 02-12-2011
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 585
Poder: 20
jafera Va por buen camino
Gracias Casimiro.

Tampoco funciona quitando begin suspend y end

Sigo investigando, me queda un acueducto por delante y debe cundir para mucho

Saludos
Responder Con Cita
  #4  
Antiguo 02-12-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
¿Pero el error sale compilándolo?
Responder Con Cita
  #5  
Antiguo 02-12-2011
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
Hola xiquet, para hacer un bucle poniendo los datos de una consulta en unas variables, tienes que utilizar una construcción FOR SELECT.

Código SQL [-]
begin   

  FOR SELECT C11, C10, C5, C6, C7, C13   
      FROM CU0001E   
      INTO :DNI_1, :LLICENCIA_1, :NOM_1, :COGNOM1_1, :COGNOM2_1, :CODIUCI_1
  DO BEGIN

    UPDATE CU0001 SET 
           LLICENCIA=:LLICENCIA_1, 
           NOM=:NOM_1, 
           COGNOM1=:COGNOM1_1, 
           COGNOM2=:COGNOM2_1, 
           CODIUCI=:CODIUCI_1   
    WHERE DNI = :DNI_1; 
  
    SUSPEND;

  END

end

Salut
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).

Última edición por guillotmarc fecha: 02-12-2011 a las 20:08:15.
Responder Con Cita
  #6  
Antiguo 02-12-2011
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 585
Poder: 20
jafera Va por buen camino
Gracias a los dos, me habeis pillado en la carretera camino de casa.

Antonio, no me da error de compilación, solo de parámetros.

Marc, lo pruebo y comento.

Saludos
Responder Con Cita
  #7  
Antiguo 02-12-2011
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 585
Poder: 20
jafera Va por buen camino
Marc, probado y me lanza el mismo error en ejecución

"Required Param Value Not Set"

No se que mirar, no se si en el componente IBStoreProc hay que modificar algo.

Si lo ejecuto en IBExpert, se queda como pidiendome los valores, en output parameters no hay nada y si voy a la pestaña sql me dice

EXECUTE PROCEDURE ACTUALITZA_RFEC('', '', '', '', '')

Gracias

Josep

Última edición por jafera fecha: 02-12-2011 a las 20:48:24.
Responder Con Cita
  #8  
Antiguo 02-12-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
¿Pero qué parámetros le pasas y cómo?
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
Stored Procedure gluglu Conexión con bases de datos 16 24-02-2011 17:41:24
Stored Procedure !!! Ledian_Fdez C++ Builder 0 02-03-2010 14:01:29
Stored Procedure StartKill MySQL 2 27-08-2008 06:18:44
Ver los Stored Procedure tgsistemas SQL 0 06-04-2004 17:18:22
Stored Procedure tgsistemas SQL 1 27-02-2004 13:10:33


La franja horaria es GMT +2. Ahora son las 07:23:49.


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