Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error en Consulta de tablas creadas en tiempo de ejecucion (https://www.clubdelphi.com/foros/showthread.php?t=29562)

javicho_villa 25-01-2006 16:51:31

Error en Consulta de tablas creadas en tiempo de ejecucion
 
Hola a Todos:

Tengo un problema cuando creo tablas dinamicamente en tiempo de ejecución, lo utilizo para generar un reporte con el QuickReport, el problema es que cuando consulto el reporte la primera vez sale perfecto, pero cuando vuelvo a visualizarlo por pantalla me sale sin datos, y he podido indagar que parece que la tabla a partir de la segunda vez ya no guarda los datos, la cosa es que tengo que salir del sistema y volver a entrar para que el reporte salga bien.

el Codigo que uso para crear la tabla es el siguiente:
Código Delphi [-]
  //---- Creando una tabla temporal para la CABECERA ----///
  Dm.TemporalTable.Close;
  Dm.TemporalTable.TableType := ttParadox;
  //-- Hay un metodo para crear el nombre del temporal--//
  Dm.TemporalTable.TableName := MiTabla+Trim(IntToStr(Numero));
  with Dm.TemporalTable.FieldDefs do
  begin
    Clear;
    Add('Id_Temp',        ftInteger,  0, True);
    Add('Id_Cliente',     ftInteger,  0, True);
    Add('ClienteProducto',ftString,  50, False);
    Add('Id_Producto',    ftInteger,  0, FALSE);
  end;
  Dm.TemporalTable.Exclusive := true;
  Dm.TemporalTable.IndexDefs.Clear;
  with Dm.TemporalTable.IndexDefs.AddIndexDef do begin
    Name := '';
    Fields := 'Id_Temp';
    Options := [ixPrimary];
  end;
  with Dm.TemporalTable.IndexDefs.AddIndexDef do begin
    Name   := 'Id_Cliente';
    Fields := 'Id_Cliente';
  end;
  Dm.TemporalTable.CreateTable;
  Dm.TemporalTable.Active := true;
  Dm.TemporalTable.FieldDefs.Update;
  Dm.TemporalTable.IndexDefs.Update;
//--- y Para llenar la tabla uso los FieldValues y FieldByName de Tables y Querys de la siguiente manera:
Código Delphi [-]
-- Append--
Dm.TempDetTable.FieldValues['Id_Kardex']:=Dm.TrabajoQuery.FieldByName('Id_Kardex').AsInteger;
-- Post ---

Le voy agradecer bbastante si me dan una mano por que la verdad que ya no se que hacer, para solucionar este problema.

Gracias de Antemano.

Javier.

javicho_villa 02-02-2006 17:14:28

Solucion
 
Hola a todos:

La solucion a este problema que cuando despues de crear los temporales, los lleno y coloco relaciones entre estos, pero al terminar el reporte destruyo las tablas pero no las relaciones.

Entonces cuando vuelvo a generar el reporte como el llenado de temporales no respeta la relacion no almacena ninguno.

la solucion era borrar estos enlaces asi:

Tabla.IndexName := ''
Tabla.MasterField := '';
Tabla.MasterSource := OtraTablaVacia.MasterSource;

Gracias por la atencion prestada.:)


La franja horaria es GMT +2. Ahora son las 17:13:13.

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