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 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
  #2  
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
  #3  
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
  #4  
Antiguo 02-12-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Parece un problema con los componentes de base de datos Delphi.
Yo creo que no cargas los parámetros antes de llamar a ExecProc.
No se qué componentes utilizas pero debería ser algo así:

Código Delphi [-]
with F_ModulDades.Actualitza_RFEC
do
begin
  Close;
  Params.ByName['LLICENCIA'].AsString := 'A123';
  Params.ByName['NOM'].AsString := 'JUAN';
  Params.ByName['COGNOM1'].AsString := 'PEREZ';
  Params.ByName['COGNOM2'].AsString := 'GOMEZ';
  Params.ByName['CODIUCI'].AsString := 'C1234';
  ExecProc;
end;
Responder Con Cita
  #5  
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
Utilizo los componentes IBX.

No se, igual estoy equivocado pero, no se realiza el proceso directamente en el Firebird?

Porque sino, pasarle los parametros desde delphi si solo es un registro ok pero si son mas de 30.000 registros a actualizar......

Gracias
Responder Con Cita
  #6  
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 Josep.

Es que has definido las variables de Licencia, Nombre, Apellidos, ... como parámetros de entrada. Por eso esta esperando que se los pases. En lugar de ello, defínelas solo como variables.

NOTA: También he eliminado el SUSPEND, puesto que creí que las variables eran de salida y realmente querías obtener esos datos en Delphi.

Código SQL [-]
SET TERM ^ ;

CREATE PROCEDURE "ACTUALITZA_RFEC"
AS
declare variable dni varchar(12) character set iso8859_1;
declare variable llicencia varchar(14) character set iso8859_1;
declare variable nom varchar(20) character set iso8859_1;
declare variable cognom1 varchar(25) character set iso8859_1;
declare variable cognom2 varchar(25) character set iso8859_1;
declare variable codiuci varchar(12) character set iso8859_1;
begin
  FOR SELECT C11, C10, C5, C6, C7, C13   
      FROM CU0001E   
      INTO :DNI, :LLICENCIA, :NOM, :COGNOM1, :COGNOM2, :CODIUCI
  DO BEGIN

    UPDATE CU0001 SET 
           LLICENCIA=:LLICENCIA, 
           NOM=:NOM, 
           COGNOM1=:COGNOM1, 
           COGNOM2=:COGNOM2, 
           CODIUCI=:CODIUCI
    WHERE DNI = :DNI; 
  
    SUSPEND;

  END
end
^

SET TERM ; ^

Salut.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
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
Gracias Marc, eres mi Angel de la Guardia.

En IBExpert funciona bien (el proceso se hace en segundos, cuando antes tardaba muchos..... minutos), pero desde Delphi me sigue lanzando el mismo error de parametro.

Josep
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
Repito:
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Pero qué parámetros le pasas y cómo?
Responder Con Cita
  #9  
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
És un plaer.

Como dice Casimiro, el problema debe venir en como llamas al procedimiento almacenado en Delphi. Si nos enseñas ese código, probablemente te podamos ayudar.

Pero, como dice el dicho : para este viaje no hacen falta alforjas.

Lo que quieres hacer se consigue con esta simple consulta :

Código SQL [-]
UPDATE CU0001 SET 
       LLICENCIA = (SELECT C10 FROM CU0001E WHERE C11 = DNI), 
       NOM =       (SELECT C5  FROM CU0001E WHERE C11 = DNI), 
       COGNOM1 =   (SELECT C6  FROM CU0001E WHERE C11 = DNI), 
       COGNOM2 =   (SELECT C7  FROM CU0001E WHERE C11 = DNI),
       CODIUCI =   (SELECT C13 FROM CU0001E WHERE C11 = DNI)
WHERE EXISTS (SELECT * FROM CU0001E WHERE C11 = DNI)

NOTA: Asegúrate de tener en CU0001E un índice para C11, y verás como se ejecuta en un tiempo récord.

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 22:26:58.
Responder Con Cita
  #10  
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
Hola Casimiro.

Lo que hago es lo que esta puesto en el SP, nada más cargo los datos de una tabla y los copio en la otra.

No le paso ningun parametro más que el de DNI=: DNI

Igual olvido algun paso, no se, como he dicho antes es mi primera vez con los SP

Gracias

Josep
Responder Con Cita
  #11  
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
Cita:
Empezado por jafera Ver Mensaje
Hola Casimiro.

Lo que hago es lo que esta puesto en el SP, nada más cargo los datos de una tabla y los copio en la otra.

No le paso ningun parametro más que el de DNI=: DNI

Igual olvido algun paso, no se, como he dicho antes es mi primera vez con los SP

Gracias

Josep
Josep, elimina el componente en tu programa y vuelve a ponerlo (probablemente aún conserva la definición de parámetros que tenía inicialmente el SP).

No le tienes que pasar ningún parámetro, ni siquiera el DNI, puesto que hemos hecho el SP sin parámetros.

Si sigue fallando, copianos el código Delphi exacto que utilizas, para que le podamos echar una ojeada.

NOTA: En un mensaje anterior te he puesto una consulta que hará el mismo trabajo, ligeramente más rápido incluso, que el SP.

Salut.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #12  
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
De nuevo apurado.

Esta consulta update, se pone con un componente consulta normal?

Es que al hacer mencion a dos tablas....

Estoy ofuscado, creo que cierro y me voy a tomar un cocacola a ver si me despejo

Hasta luego
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
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 13:16:26.


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