Ver Mensaje Individual
  #1  
Antiguo 18-09-2008
klionsis klionsis is offline
Miembro
 
Registrado: may 2006
Posts: 50
Reputación: 21
klionsis Va por buen camino
Creacion de Tabla e inserción de datos

Hola gente. Les cuento que estoy intentando crear una tabla en tiempo de ejecución y a la vez estoy intentando insertar datos a la misma. El procedimiento que estoy utilizando es similar al siguiente:


Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
 var
  Productos: TTable;
 begin
  Productos := TTable.Create(nil);
  try
   with Productos do begin

    // Definición de la tabla
    DatabaseName := 'c:\Actualizacion\Tablas'
    TableType := ttDBase;
    TableName := 'Tabla1.DBF';

    with FieldDefs do begin // Definición de los campos
     with AddFieldDef do begin
      Name := 'IDProducto';
      DataType := ftSmallint;
     end;
     with AddFieldDef do begin
      Name := 'Descripcion';
      DataType := ftString;
      Size := 25;
     end;
     with AddFieldDef do begin
      Name := 'Precio';
      DataType := ftFloat;
     end;
    end;

    with IndexDefs do begin // Definición de los índices
     with AddIndexDef do begin
      Name := 'PorID';
      Fields := 'IDProducto';
     end;
    
    CreateTable; // Crea la tabla

    // Insercion de datos
    query1.SQL.Clear();
    query1.SQL.Add('Insert Into Productos select * from Articulos');    
    query1.ExcecSQL;
     

   end;
  except
   Productos.Free;
   raise;
  end;
  Productos.Free;
 end;


El problema de esto es que la tabla productos es la que acabo de crear en tiempo de ejecucion y se aloja en 'c:\Actualizacion\Tablas' y la tabla desde adonde estoy sacando los datos 'Articulos' se encuentra en la base de datos que yo estoy manipulando en base a un alias que he creado y que esta en un lugar distinto a la ubicacion de primera tabla.

Por el principio el error que me esta dando es que no existe esta tabla 'Productos'. Les pregunto entonces como puedo hacer para crear esta tabla e insertarle datos como pretendo?

Espero me puedan ayudar.


Gracias.
Responder Con Cita