Delphi - Проверьте, существует ли таблица LINKED в БД Access 2003 с помощью ADO - PullRequest
0 голосов
/ 16 декабря 2011

У меня есть 2 МБ связаны.Original.mdb (не трогать) и copy.mdb
Я использовал это для проверки существования таблиц:

function CheckIfTableExists(myTable : AnsiString): boolean;
var
  x := Integer;
  bTrue : boolean;
begin

f1.ADOConnection1.GetTableNames(f1.ListBox1.Items,False);
bTrue := false;
for x := 0 to f1.ListBox1.Items.Count -1 do
 begin
  if (f1.ListBox1.Items.Strings[x] = myTable) then
   begin
    bTrue := true;
   end;
end;

 if (bTrue = true) then
  begin
   Result := True;
  end
 else
  Result := false;
 end;
end;

Я уверен, что есть лучший способ сделать это, но до сих пор это работало хорошо для меня.
Теперь мне нужно проверить, существует ли ССЫЛКА на другую таблицу mdb.Кто-нибудь знает, как это сделать?

I.Bagon

1 Ответ

1 голос
/ 16 декабря 2011

Каждый файл Access MDB имеет скрытую таблицу с именем MSysObjects, которая в основном представляет собой список всех объектов в MDB.
Вы можете запросить эту таблицу, чтобы выяснить, существует ли объект с данным именем в MDB.

MSysObjects содержит ВСЕ объекты в MDB.Не только таблицы, но также формы и записи.
Вы можете отфильтровать по столбцу Type, чтобы получить только таблицы:

Type = 1 -> локальная таблица
Type = 6 --> связанная таблица

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...