Когда я создаю объект таблицы (Table1) с нуля и назначаю свойство TableName существующей таблице на диске, функция Table1.Exist завершается ошибкой.Я использую Delphi2010, и это таблица Paradox 7.
filename := ZipMaster1.DirEntry[i].FileName;
if Pos('.DB', UpperCase(filename)) > 0 then
begin
Table1 := TTable.Create(FormArchiveFileSelector);
Table1.TableName := IncludeTrailingPathDelimiter(ExtractDir) + ExtractFileName(filename);
if Table1.Exists then
Table1.DeleteTable;
Table1.Free;
end;
Когда я заменяю Table1.Exists
на FileExists(Table1.TableName)
, это возвращает true.У кого-нибудь есть объяснение этому?
Код решения
Придерживаясь предложений, ниже приведен пример «правильного» примера кода:
filename := 'C:\Temp\tables\XXX_1.db';
Table1.DatabaseName := ExtractFilePath(filename);
Table1.Tablename := ExtractFileName(filename);
if Table1.Exists then MessageDlg('Exists', mtInformation, [mbOK], 0)
else MessageDlg('Missing', mtInformation, [mbOK], 0);
Примечание: Даже при установке Table1.Tablename
на полный путь и имя таблицы при правильной настройке DatabaseName функция Exists не будет работать.TableName должно быть без пути, всегда.