Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-03-2013
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Execute Block en un IBScript

Hola a tod@s !!

... si, si, ya sé .... estoy un poco perdido ... pero siempre os tengo a todos y al foro en general muy presente !

Ahí va un nuevo problemita :

Necesito ejecutar un EXECUTE BLOCK en un TIBScript.

Código Delphi [-]
EXECUTE BLOCK
AS
DECLARE VARIABLE VAR_A BIGINT;
DECLARE VARIABLE VAR_B BIGINT;
BEGIN
  For Select VALUEA, VALUEB from TEMP_SCRIPT
        into :VAR_A, :VAR_B
  do
      Update AVAIL_WEB_XML_UPDATES
      Set CHANNELMANAGER_INTNO = :VAR_B
      where INTERNALNO = :VAR_A;
END;

Me acabo de dar cuenta que al ir terminada cada línea del Execute Block con un carácter ';', pues el IBScript lo toma como líneas independientes a ejecutar.

Cambiar el ';' por otro carácter diferente en IBScript.Terminator sería una solución probablemente, pero ello me llevaría a cambiar MILES de líneas de otros script's diferentes para reemplazar el ';' por cualquier otro carácter.

... y sólo por este dichoso Execute Block.

Cómo se podría enfocar ??

Gracias como siempre por vuestra ayuda.
__________________
Piensa siempre en positivo !
Responder Con Cita
  #2  
Antiguo 05-03-2013
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Código Delphi [-]
SET TERM #;
EXECUTE BLOCK
AS
DECLARE VARIABLE VAR_A BIGINT;
DECLARE VARIABLE VAR_B BIGINT;
BEGIN
  For Select VALUEA, VALUEB from TEMP_SCRIPT
        into :VAR_A, :VAR_B
  do
      Update AVAIL_WEB_XML_UPDATES
      Set CHANNELMANAGER_INTNO = :VAR_B
      where INTERNALNO = :VAR_A;
END#
SET TERM ;#

... vaya ... como siempre.

Pongo la pregunta y encuentro la respuesta.

Ahora lo que ocurre es que parece que al componente IBScript no le parece correcto :VAR_A ya que me devuelve Token Unknown Line 7, Column 14.
__________________
Piensa siempre en positivo !
Responder Con Cita
  #3  
Antiguo 05-03-2013
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Código Delphi [-]
SET TERM #;
EXECUTE BLOCK
AS
DECLARE VARIABLE VAR_A BIGINT;
DECLARE VARIABLE VAR_B BIGINT;
BEGIN
  For Select VALUEA, VALUEB from TEMP_SCRIPT
  into VAR_A, VAR_B
  do
      Update AVAIL_WEB_XML_UPDATES
      Set CHANNELMANAGER_INTNO = :VAR_B
      where INTERNALNO = :VAR_A;
END
#
SET TERM ;#

Quitándole los : a las variables Var_A y Var_B en el For .. Select, parece que no da ese error, pero ahora el error es :
Código SQL [-]
Dynamic SQL Error
SQL error code = -901
undefined message number

En todo momento anterior, cualquiera de los Execute Block que he mencionado en este post, funcionan correctamente en el IBExpert al ejecutar el Script.
__________________
Piensa siempre en positivo !
Responder Con Cita
  #4  
Antiguo 05-03-2013
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
... al final he decidido sustituir el EXECUTE BLOCK anterior por :

Código SQL [-]
UPDATE AVAIL_WEB_XML_UPDATES AWXU
SET 
  CHANNELMANAGER_INTNO = (Select VALUEB from TEMP_SCRIPT TS where TS.VALUEA = AWXU.INTERNALNO)
WHERE EXISTS (Select 1 from TEMP_SCRIPT TS where TS.VALUEA = AWXU.INTERNALNO);

__________________
Piensa siempre en positivo !
Responder Con Cita
  #5  
Antiguo 05-03-2013
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Me encantó tu monólogo.
Saludos
Responder Con Cita
  #6  
Antiguo 06-03-2013
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
... si ya ví que al final ha sido un verdadero monólogo. Espero al menos que a alguien le sirva algún día !!
__________________
Piensa siempre en positivo !
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
Initialization block no se ejecuta LoPiTaL Varios 3 21-07-2010 09:06:22
select a execute block hecospina Firebird e Interbase 7 10-11-2008 21:49:39
Reemplazar un block de notas arespremium OOP 3 13-08-2007 19:13:43
Paradox Y Block Size nax Tablas planas 0 03-07-2005 06:35:10
¿IBScript? subzero Firebird e Interbase 2 26-05-2005 05:51:43


La franja horaria es GMT +2. Ahora son las 05:55:52.


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