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
|