Ver Mensaje Individual
  #2  
Antiguo 02-02-2005
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 479
Reputación: 20
lgarcia Va por buen camino
Crear tabla .dbf desde Delphi

No se muy bien lo de los indices a que te refieres pero te voy a mostrar un codigo donde se puede realizar eso que quieres:

procedure TFormFicheroCadeca.ButtonCrearClick(Sender: TObject);
var
Ok: Boolean;
begin
with DataModule1 do
begin
if FileExists('Cadeca.dbf') then DeleteFile('Cadeca.dbf');
Cadeca.Active:= FALSE;
Cadeca.DatabaseName:= 'dBase Files';
Cadeca.TableType:= ttDBase;
Cadeca.TableName:= 'Cadeca';
with Cadeca.FieldDefs do
begin
Clear;
Add('COD_UNIDAD', ftString, 4, FALSE);
Add('CAJA', ftString, 2, FALSE);
Add('NBOLSA', ftString, 8, FALSE);
Add('IMPORTE', ftFloat, 0, FALSE);
Add('DIFERENCIA', ftFloat, 0, FALSE);
Add('MONEDA', ftString, 3, FALSE);
Add('FECHA_DEP', ftTime, 0, FALSE);
Add('FECHA_CON', ftTime, 0, FALSE);
Add('OBS', ftString, 200, FALSE);
end;
Cadeca.CreateTable;
Cadeca.Open;
FicheroCadeca1.First;
while not FicheroCadeca1.Eof do
begin
Cadeca.Insert;
CadecaCOD_UNIDAD.Value:= FicheroCadeca1cadeca.Value;
if FicheroCadeca1caja.Value < 10 then CadecaCAJA.Value:= '0' + IntToStr(FicheroCadeca1caja.Value)
else CadecaCAJA.Value:= IntToStr(FicheroCadeca1caja.Value);
CadecaNBOLSA.Value:= FicheroCadeca1numero.Value;
CadecaIMPORTE.Value:= FicheroCadeca1Importe.Value;
CadecaDIFERENCIA.Value:= FicheroCadeca1Diferencia.Value;
CadecaMONEDA.Value:= FicheroCadeca1moneda.Value;
ConvertirFecha(DateToStr(FicheroCadeca1Fecha1.Value), fecha1);
ConvertirFecha(DateToStr(FicheroCadeca1fecha2.Value), fecha2);
CadecaFECHA_DEP.Value:= FicheroCadeca1Fecha1.Value - 1;
if IArea = 2 then CadecaFECHA_CON.Value:= Date + 1
else CadecaFECHA_CON.Value:= Date + 1;
Cadeca.Post;
FicheroCadeca1.Next;
end;
Cadeca.Close;
end;
NombreFichero;
if IArea = 2 then fichero:= DataModule1.ConfiguracionCodigo.Value + 'cd' + dia + mes + '.dbf'
else fichero:= DataModule1.ConfiguracionCodigo.Value + 'sd' + dia + mes + '.dbf';
Ok2:= True;
if FileExists(fichero) then DeleteFile(fichero);
Ok:= CopyFileTo('Cadeca.dbf', Fichero);
DataModule1.LogSystem(IdPersonal, 15);
ShowMessage(' El fichero de Cadeca: ' + fichero + ' fue creado satisfactoriamente');
end;

En este procedimiento se crea desde cero la Tabla dbf y posteriormente se actualiza con los datos que estan en el procedimiento almacenado FicheroCadeca1. Debes en el uses añadir las Unit bde, DBTables.

Esperando que te sirva.

Saludos
Luis Garcia
Responder Con Cita