Código
unit Fixit;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, DBTables, Grids, DBGrids;
type
TForm1 = class(TForm)
Table1: TTable;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure RemoveMDXByte(dbFile: String);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
const`
TheTableDir = 'c:temp'; //Não esqueça da contra-barra no final
TheTableName = 'animals.dbf';
procedure TForm1.RemoveMDXByte(dbFile: String);
const
Value: Byte = 0;
var
F: File of byte;
begin
AssignFile(F, dbFile);
Reset(F);
Seek(F, 28);
Write(F, Value);
CloseFile(F);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
try
Table1.DatabaseName := TheTableDir;
Table1.TableName := TheTableName;
Table1.Open;
except on E:EDBEngineError do
if Pos('Index does not exist', E.Message)>0 then begin
MessageDlg('O índice da tabela não existe. Deseja continuar ?',mtWarning, [mbOk], 0);
RemoveMDXByte(TheTableDir + TheTableName);
PostMessage(Button1.Handle, cn_Command, bn_Clicked, 0);
end;
end;
end;
end.
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009