procedure TForm_MAIN.SpeedButton_DATABASE_REPAIRClick(Sender: TObject);
var
FILE_Attrs : Integer;
SEARCH_Rec : TSearchRec;
FILE_Name : string;
FILE_Ext : string;
procedure DELETE_DataFile(pmt_FILENAME: string);
begin
{$I-}
if (IOResult = 0) then
begin
if (SYSUTILS.FindFirst(Init_PATH_RED + '\' + pmt_FILENAME, FILE_Attrs, SEARCH_Rec) = 0) then
begin
repeat
FILE_Name := UpperCase(ExtractFileName(SEARCH_Rec.Name));
FILE_Name := Copy(FILE_Name, 1, Pos('.', FILE_Name) - 1);
FILE_Ext := UpperCase(ExtractFileExt(SEARCH_Rec.Name));
if ((SEARCH_Rec.Attr and FILE_Attrs) = SEARCH_Rec.Attr) and
(FILE_Ext <> '.DB') and
(FILE_Ext <> '.MB') then
SYSUTILS.DeleteFile(Init_PATH_RED + '\' + SEARCH_Rec.Name);
until (SYSUTILS.FindNext(SEARCH_Rec) <> 0);
SYSUTILS.FindClose(SEARCH_Rec);
end;
end;
{$I+}
end;
begin
if (Tmp_TABLE_OFS = nil) then
begin
Tmp_TABLE_OFS := TTable.Create(Owner);
Tmp_TABLE_OFS.Name := 'Tmp_TABLE_OFS';
Tmp_TABLE_OFS.SessionName := 'Session_DELPHI_1';
Tmp_TABLE_OFS.DatabaseName := 'DELPHI_Data';
Tmp_TABLE_OFS.TableType := ttParadox;
Tmp_TABLE_OFS.TableName := 'DDBTLM01.DB';
Tmp_TABLE_OFS.MasterSource := nil;
Tmp_TABLE_OFS.MasterFields := '';
Tmp_TABLE_OFS.IndexFieldNames := '';
end;
if (Tmp_DS_OFS = nil) then
begin
Tmp_DS_OFS := TDataSource.Create(Owner);
Tmp_DS_OFS.Name := 'Tmp_DS_OFS';
Tmp_DS_OFS.DataSet := Tmp_TABLE_OFS;
Tmp_DS_OFS.Enabled := True;
end;
Gauge_DATABASE.Progress := 0;
Gauge_DATABASE.MaxValue := 17;
FILE_Attrs := (SYSUTILS.faReadOnly + SYSUTILS.faHidden
+ SYSUTILS.faSysFile + SYSUTILS.faVolumeID
+ SYSUTILS.faArchive + SYSUTILS.faAnyFile);
if (CheckBox_Tables_DDBTLM.Checked) then
begin
Tmp_TABLE_OFS.TableName := 'DDBTLM01.DB';
DELETE_DataFile('DDBTLM01.*');
Tmp_TABLE_OFS.AddIndex('', 'LINK_0001', [ixPrimary]);
Tmp_TABLE_OFS.AddIndex('ID_Table_Name', 'Table_Name', [ixCaseInsensitive]);
Gauge_DATABASE.Progress := Gauge_DATABASE.Progress + 1;
Tmp_TABLE_OFS.TableName := 'DDBTLM02.DB';
DELETE_DataFile('DDBTLM02.*');
Tmp_TABLE_OFS.AddIndex('', 'LINK_0001;LINK_0002', [ixPrimary]);
Tmp_TABLE_OFS.AddIndex('ID_LINK_0001_', 'LINK_0001;LINK_0001_', [ixCaseInsensitive]);
Tmp_TABLE_OFS.AddIndex('ID_LINK_0002_', 'LINK_0001;LINK_0001_;LINK_0002_', [ixCaseInsensitive]);
Tmp_TABLE_OFS.AddIndex('ID_LINK_0003_', 'LINK_0001;LINK_0001_;LINK_0002_;LINK_0003_', [ixCaseInsensitive]);
Tmp_TABLE_OFS.AddIndex('ID_LINK_0004_', 'LINK_0001;LINK_0001_;LINK_0002_;LINK_0003_;LINK_0004_', [ixCaseInsensitive]);
Tmp_TABLE_OFS.AddIndex('ID_LINK_0005_', 'LINK_0001;LINK_0001_;LINK_0002_;LINK_0003_;LINK_0004_;LINK_0005_', [ixCaseInsensitive]);
Tmp_TABLE_OFS.AddIndex('ID_LINK_0006_', 'LINK_0001;LINK_0001_;LINK_0002_;LINK_0003_;LINK_0004_;LINK_0005_;LINK_0006_', [ixCaseInsensitive]);
Tmp_TABLE_OFS.AddIndex('ID_LINK_0007_', 'LINK_0001;LINK_0001_;LINK_0002_;LINK_0003_;LINK_0004_;LINK_0005_;LINK_0006_;LINK_0007_', [ixCaseInsensitive]);
Tmp_TABLE_OFS.AddIndex('ID_LINK_0008_', 'LINK_0001;LINK_0001_;LINK_0002_;LINK_0003_;LINK_0004_;LINK_0005_;LINK_0006_;LINK_0007_;LINK_0008_', [ixCaseInsensitive]);
Tmp_TABLE_OFS.AddIndex('ID_LINK_0009_', 'LINK_0001;LINK_0001_;LINK_0002_;LINK_0003_;LINK_0004_;LINK_0005_;LINK_0006_;LINK_0007_;LINK_0008_;L INK_0009_', [ixCaseInsensitive]);
Gauge_DATABASE.Progress := Gauge_DATABASE.Progress + 1;
Table_MUS.Close;
Tmp_TABLE_OFS.TableName := 'MUSICAS.DB';
DELETE_DataFile('MUSICAS.*');
Tmp_TABLE_OFS.AddIndex('', 'LINK_0001', [ixPrimary]);
Tmp_TABLE_OFS.AddIndex('ID_Ord', 'MUSIC_Order', [ixCaseInsensitive]);
Gauge_DATABASE.Progress := Gauge_DATABASE.Progress + 1;
Table_MUS.Open;
end;
if (CheckBox_Tables_SYSTEM.Checked) then
begin
Tmp_TABLE_OFS.TableName := 'EMPPRJ.DB';
DELETE_DataFile('EMPPRJ.*');
Tmp_TABLE_OFS.AddIndex('', 'LINK_0001', [ixPrimary]);
Tmp_TABLE_OFS.AddIndex('ID_Fec', 'Fecha', [ixCaseInsensitive]);
Tmp_TABLE_OFS.AddIndex('ID_Prj', 'Proyecto', [ixCaseInsensitive]);
Gauge_DATABASE.Progress := Gauge_DATABASE.Progress + 1;
Tmp_TABLE_OFS.TableName := 'CVMMOV.DB';
DELETE_DataFile('CVMMOV.*');
Tmp_TABLE_OFS.AddIndex('', 'LINK_0001;LINK_0002', [ixPrimary]);
Tmp_TABLE_OFS.AddIndex('ID_Fec', 'LINK_0001;Fecha', [ixCaseInsensitive]);
Gauge_DATABASE.Progress := Gauge_DATABASE.Progress + 1;
Tmp_TABLE_OFS.TableName := 'CMVITM.DB';
DELETE_DataFile('CVMMOV.*');
Tmp_TABLE_OFS.AddIndex('', 'LINK_0001;LINK_0002;LINK_0003', [ixPrimary]);
Tmp_TABLE_OFS.AddIndex('ID_Itm', 'LINK_0001;LINK_0002;Item', [ixCaseInsensitive]);
Gauge_DATABASE.Progress := Gauge_DATABASE.Progress + 1;
Tmp_TABLE_OFS.TableName := 'STDANO.DB';
DELETE_DataFile('STDANO.*');
Tmp_TABLE_OFS.AddIndex('', 'LINK_0001;LINK_0002', [ixPrimary]);
Tmp_TABLE_OFS.AddIndex('ID_Ano', 'LINK_0001;Ano', [ixCaseInsensitive]);
Gauge_DATABASE.Progress := Gauge_DATABASE.Progress + 1;
Tmp_TABLE_OFS.TableName := 'STDMES.DB';
DELETE_DataFile('STDMES.*');
Tmp_TABLE_OFS.AddIndex('', 'LINK_0001;LINK_0002;LINK_0003', [ixPrimary]);
Gauge_DATABASE.Progress := Gauge_DATABASE.Progress + 1;
Tmp_TABLE_OFS.TableName := 'KDXALM.DB';
DELETE_DataFile('KDXALM.*');
Tmp_TABLE_OFS.AddIndex('', 'LINK_0001;LINK_0002', [ixPrimary]);
Tmp_TABLE_OFS.AddIndex('ID_Alm', 'LINK_0001;Almacen', [ixCaseInsensitive]);
Gauge_DATABASE.Progress := Gauge_DATABASE.Progress + 1;
Tmp_TABLE_OFS.TableName := 'KDXPRD.DB';
DELETE_DataFile('KDXPRD.*');
Tmp_TABLE_OFS.AddIndex('', 'LINK_0001;LINK_0002;LINK_0003', [ixPrimary]);
Tmp_TABLE_OFS.AddIndex('ID_Prd', 'LINK_0001;LINK_0002;Producto', [ixCaseInsensitive]);
Gauge_DATABASE.Progress := Gauge_DATABASE.Progress + 1;
Tmp_TABLE_OFS.TableName := 'KDXHTR.DB';
DELETE_DataFile('KDXHTR.*');
Tmp_TABLE_OFS.AddIndex('', 'LINK_0001;LINK_0002;LINK_0003;LINK_0004', [ixPrimary]);
Tmp_TABLE_OFS.AddIndex('ID_Fec', 'LINK_0001;LINK_0002;LINK_0003;Fecha', [ixCaseInsensitive]);
Tmp_TABLE_OFS.AddIndex('ID_LINK_0002_', 'LINK_0001;LINK_0002;LINK_0003;LINK_0002_', [ixCaseInsensitive]);
Tmp_TABLE_OFS.AddIndex('ID_LINK_0003_', 'LINK_0001;LINK_0002;LINK_0003;LINK_0002_;LINK_0003_', [ixCaseInsensitive]);
Gauge_DATABASE.Progress := Gauge_DATABASE.Progress + 1;
Tmp_TABLE_OFS.TableName := 'MTRPRT.DB';
DELETE_DataFile('MTRPRT.*');
Tmp_TABLE_OFS.AddIndex('', 'LINK_0001;LINK_0002', [ixPrimary]);
Tmp_TABLE_OFS.AddIndex('ID_Tip', 'LINK_0001;Tipo', [ixCaseInsensitive]);
Gauge_DATABASE.Progress := Gauge_DATABASE.Progress + 1;
Tmp_TABLE_OFS.TableName := 'MTRPRD.DB';
DELETE_DataFile('MTRPRD.*');
Tmp_TABLE_OFS.AddIndex('', 'LINK_0001;LINK_0002;LINK_0003', [ixPrimary]);
Tmp_TABLE_OFS.AddIndex('ID_Prd', 'LINK_0001;LINK_0002;Producto', [ixCaseInsensitive]);
Gauge_DATABASE.Progress := Gauge_DATABASE.Progress + 1;
Tmp_TABLE_OFS.TableName := 'MTRCLT.DB';
DELETE_DataFile('MTRCLT.*');
Tmp_TABLE_OFS.AddIndex('', 'LINK_0001;LINK_0002', [ixPrimary]);
Tmp_TABLE_OFS.AddIndex('ID_Nom', 'LINK_0001;Nombres', [ixCaseInsensitive]);
Gauge_DATABASE.Progress := Gauge_DATABASE.Progress + 1;
Tmp_TABLE_OFS.TableName := 'MTRPRV.DB';
DELETE_DataFile('MTRPRV.*');
Tmp_TABLE_OFS.AddIndex('', 'LINK_0001;LINK_0002', [ixPrimary]);
Tmp_TABLE_OFS.AddIndex('ID_Nom', 'LINK_0001;Nombres', [ixCaseInsensitive]);
Gauge_DATABASE.Progress := Gauge_DATABASE.Progress + 1;
Tmp_TABLE_OFS.TableName := 'MTRIMP.DB';
DELETE_DataFile('MTRIMP.*');
Tmp_TABLE_OFS.AddIndex('', 'LINK_0001;LINK_0002', [ixPrimary]);
Gauge_DATABASE.Progress := Gauge_DATABASE.Progress + 1;
Tmp_TABLE_OFS.TableName := 'BNKFLT.DB';
DELETE_DataFile('BNKFLT.*');
Tmp_TABLE_OFS.AddIndex('', 'LINK_0001', [ixPrimary]);
Gauge_DATABASE.Progress := Gauge_DATABASE.Progress + 1;
end;
Gauge_DATABASE.Progress := 17;
if (Tmp_TABLE_OFS <> nil) then
begin
Tmp_TABLE_OFS.Close;
Tmp_TABLE_OFS.Free;
Tmp_TABLE_OFS := nil;
end;
if (Tmp_DS_OFS <> nil) then
begin
Tmp_DS_OFS.Free;
Tmp_DS_OFS := nil;
end;
end;