Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-03-2014
gorsan gorsan is offline
Miembro
 
Registrado: jun 2003
Ubicación: Alcala de Henares (Madrid)
Posts: 87
Poder: 21
gorsan Va por buen camino
Un IBQuery que falla cuando se ejecuta por segunda vez

Hola a todos.
En un módulo de datos tengo un IBQuery en blanco, recién implantado desde la VCL lo único que he cambiado es el nombre.
El uso que le doy a este componente es la creación de una tabla IBX en tiempo de ejecución:
Código Delphi [-]
 with DMPrincipal.IBQuery2 do
   begin
    Close;
    Database:= DMPrincipal.IBDB;
    Transaction:= DMPrincipal.IBTPermanente;
    SQL.Add('SELECT RDB$RELATION_NAME FROM RDB$RELATIONS');
    SQL.Add('WHERE RDB$VIEW_BLR IS NULL');
    SQL.Add('AND (RDB$SYSTEM_FLAG IS NULL OR RDB$SYSTEM_FLAG = 0)');
    SQL.Add('AND RDB$RELATION_NAME = :PTABLE2');
    ParamByName('PTABLE2').AsString:= TableName2;
    Open;
    if IsEmpty then
      with DMPrincipal.IBQuery2 do
       begin
        Close;
        Database:= DMPrincipal.IBDB;
        Transaction:= DMPrincipal.IBTPermanente;
        SQL.Clear;
        SQL.Add('CREATE TABLE '+ TableName2 + '(');
        SQL.Add('PRECIO_HORA_OFICIAL FLOAT DEFAULT '+IntToStr(0)+',');
        SQL.Add('FACTOR_CORRECTOR FLOAT DEFAULT '+IntToStr(0)+',');
        SQL.Add('ANUALIDAD_EN_CURSO SMALLINT NOT NULL,');
        SQL.Add('MES_EN_CURSO VARCHAR(10) NOT NULL,');
        SQL.Add('PRIMARY KEY(MES_EN_CURSO, ANUALIDAD_EN_CURSO)');
        SQL.Add(')');
        ExecSQL;
       end
    else
      raise Exception.Create('Existe una tabla con ese nombre');
  end;
end;
La primera vez que se ejecuta funciona como debe, es decir, genera la tabla, pero si inmediatamente después genero una segunda entonces el sistema da una excepción inesperada y peta en el primer open "token desconocido SELECT"
Alguna idea? intuyo que el componente no queda liberado para volver a cargar. ¿Si es eso como lo libero?
Responder Con Cita
  #2  
Antiguo 17-03-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola gorsan.

Tenes que usar el método Clear para limpiar el contenido previo de la lista.
Código Delphi [-]
   with DMPrincipal.IBQuery2 do
   begin
    Close;
    Database:= DMPrincipal.IBDB;
    Transaction:= DMPrincipal.IBTPermanente;
    SQL.Clear; 
    ...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 17-03-2014 a las 22:30:09.
Responder Con Cita
  #3  
Antiguo 17-03-2014
gorsan gorsan is offline
Miembro
 
Registrado: jun 2003
Ubicación: Alcala de Henares (Madrid)
Posts: 87
Poder: 21
gorsan Va por buen camino
Gracias ecfisa. Vaya una estupidez pero no lo veía.
Responder Con Cita
  #4  
Antiguo 17-03-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
No te preocupes, nos pasa a todos.
(Ví que era un olvido ya que mas abajo lo estabas usando)

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Me falla el programa cuando cambio el directorio de impresion titancc Impresión 3 12-01-2011 18:55:21
Cuando falla la conexión JLR Conexión con bases de datos 8 31-10-2007 12:56:32
TADOStoreProcedure falla a la segunda vez gcaffe SQL 4 07-04-2006 12:20:21
Saber cuando se ejecuta EXPLORER.EXE marceloalegre Varios 5 06-06-2005 16:58:07


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


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