请教各位高手“如何判断数据库中,某一个表是否存在?”
我用的数据库是INTERBASE6。

解决方案 »

  1.   

    用ADO存取的数据库:
    function TDM.MyTableExists(ATableName: String): Boolean;  //判断给定表是否存在
    var
      SL: TStrings;
      I: Integer;
      S: String;
    begin
      Result := False;
      S := UpperCase(ATableName);
      SL := TStringList.Create;
      try
        DM.ADOConnection.GetTableNames(SL, False); //取得表名
        for I := 0 to (SL.Count - 1) do
        begin
          if UpperCase(SL[I])= S then
          begin
            Result := True;
            Break;
          end;{if}
        end;{for}
      finally
        SL.Free;
      end;{try}
    end;调用:
     if  MyTableExists('ATableName') then ShowMessage('已存在');
      

  2.   

    检 测 表 格 是 否 存 在 通 过 调 用Session.GetTableNames(const DatabaseName,Pattern: string; Extensions,SystemTables: Boolean; List:TStrings) 方 法, 可 将 当 前 指 定 数 据 库 别 名 中 所 有 表 格 的 名 称 存 放 到 List 字 符串 列 表 中。list.IndexOf(' 需 要 检 测 的 表 格 名') 的 值 会 告 诉 我 们 这 个 表 格 是 否 存 在(其 值 为-1 时 不 存 在)。 
      

  3.   

    查一下系统表吧,一般有系统表存放数据库里所有的表。
    oracle 是tab,    sqlserver 是sysobjects