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 13-09-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
Cita:
Empezado por rastafarey
Que version de de interbase o firebird usas y desde donde ejecutas dicho procedure.
Firebird 1.5.algo, el último estable.
Si lo ejecuto desde C++Builder con los IBX o desde wSQL, se cuelga.
Si lo ejecuto desde IBOConsole, me da este error.
__________________
[Crandel]
Responder Con Cita
  #2  
Antiguo 13-09-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 23
rastafarey Va por buen camino
resp

Me puedes enviar un script con la strutura de la bd para hacer la prueva
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #3  
Antiguo 14-09-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
Hola rastafarey, perdona que recien conteste a esta hora, la verdad es que hoy fue un día dificil y largo.

Bueno, La idea es crear una DB llamada PRUEBA o lo que sea, genere una mini DB para simular el problema que tengo sin perder tiempo en el resto.

Este es el código para generar la DB
Código SQL [-]
/* Creamos las tablas MOV_TEMP y MOV_FINAL
   ======================================= */
CREATE TABLE MOV_TEMP (
    ID_MOV INTEGER NOT NULL PRIMARY KEY, 
    REF_CARGO INTEGER NOT NULL,
    ENTRADA TIMESTAMP DEFAULT 'now' NOT NULL,
    SALIDA TIMESTAMP);

CREATE TABLE MOV_FINAL (
    ID_MOV INTEGER NOT NULL PRIMARY KEY, 
    REF_CARGO INTEGER NOT NULL,
    ENTRADA TIMESTAMP DEFAULT 'now' NOT NULL,
    SALIDA TIMESTAMP);
    
/* Generador para el ID */   
CREATE GENERATOR INC_MOV;
  
    
/* Declaramos la función externa */   
DECLARE EXTERNAL FUNCTION FIRSTDAYMONTH
   TIMESTAMP
   RETURNS TIMESTAMP
  ENTRY_POINT 'fn_firstdaymonth'  MODULE_NAME 'rfunc';
  
  
SET TERM ^ ;

/* Trigger que incrementa el ID */   
CREATE TRIGGER BI_MOV FOR MOV_TEMP
ACTIVE BEFORE INSERT AS
BEGIN
  MOV_TEMP.ID_MOV = gen_id(INC_MOV, 1);
END^

/* Procedimiento que me da error
  Es para mover los registros del mes anterior a la otra tabla */ 
CREATE PROCEDURE MOVER_MOV_TEMP_A_FINAL
AS
BEGIN
  INSERT INTO MOV_FINAL (ID_MOV, REF_CARGO, ENTRADA, SALIDA)
    SELECT * FROM MOV_TEMP
    WHERE SALIDA IS NOT NULL
    AND SALIDA < FIRSTDAYMONTH('NOW');

  DELETE FROM MOV_TEMP
    WHERE SALIDA IS NOT NULL
    AND SALIDA < FIRSTDAYMONTH('NOW');
END^

SET TERM ; ^
y con estas instrucciones la usamos
Código SQL [-]
/* Ejecutamos esto unas cuantas veces para generar datos */   
/* con ambas fechas */
INSERT INTO MOV_TEMP(REF_CARGO, ENTRADA, SALIDA)
VALUES(1, '2005/08/13 23:39:05', '2005/08/13 23:39:05');

INSERT INTO MOV_TEMP(REF_CARGO, ENTRADA)
VALUES(1, '2005/08/13 23:39:05');

INSERT INTO MOV_TEMP(REF_CARGO, ENTRADA)
VALUES(1, 'now');


/* Ejecuto el procedimiento */
EXECUTE PROCEDURE MOVER_MOV_TEMP_A_FINAL
Si ves el error te lo agradecería.
__________________
[Crandel]
Responder Con Cita
  #4  
Antiguo 14-09-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 23
rastafarey Va por buen camino
Resp

Mira no probe el script ya que pienso que tienes un problema de antemano. El formato de fecha ya que ib/fb usan la fecha en formato gringo mes/dia/año y no año/dia/mes. Comiensa por solucionar eso ya que si tratas de sacar el mes te daria un mes fuera del rango. Aunque no entiendo si has insertado un afecha de esa forma el manejador no te alla dado un error.

Espero te sirva de ayuda.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #5  
Antiguo 14-09-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
La realidad es que no uso esta forma de insertar las fechas, este es solo un ejemplo para poder ejecutarlos desde alguna consola sin hacer ninguna aplicación.

Yo inserto las fechas desde mi programa, el formato que puse arriba es para que lo hacepte IBOConsole, con el formato que vos me decis da un error de conversión.

Ademas es sólo la forma de insertar, despues cuando listo los datos, estos se muestran de forma correcta.
__________________
[Crandel]
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


La franja horaria es GMT +2. Ahora son las 06:21:52.


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