Delphi - 使用ADO检查Access 2003 DB中是否存在LINKED表

时间:2011-12-15 20:29:35

标签: delphi ms-access delphi-7 ado

我有2个mdb链接。 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表的LINK。有谁知道怎么做?

I.Bagon

1 个答案:

答案 0 :(得分:1)

每个Access MDB文件都有一个名为MSysObjects的隐藏表,它基本上是MDB中所有对象的列表。
您可以查询此表以查明MDB中是否存在具有给定名称的对象。

MSysObjects包含MDB中的所有对象。不仅是表格,还有形式和记录。
您可以在Type列上过滤以仅获取表格:

Type = 1 - >本地表
Type = 6 - >链表