我有一应用程序,建立了一个库,想在库里建立一个表TABLE 每次执行的时候建表的操作都要运行,如果要建的表存在那系统会提示表TABLE存在,程序不能运行,请问有没有可以检查表存在没存在的函数或是代码??在DELPHI中写,我是用ACCESS建立的数据库。谢谢!!!!

解决方案 »

  1.   

    用一个不爽的方法试一试:
    'select * from tablename'执行一次,用try...except,在except是就判断就没有了,呵呵
      

  2.   

    看这个函数function ExistsTable(TName: string): Boolean;   //------判断表是否存在
    begin
          with Dm.QueExecSQL do
          begin
             Close;
             SQL.Clear;
             try
                SQL.Add(' select * from ' + TName + ' where 1 = 2 ');
                Open;
                Result := True;
             except
                Result := False;
             end;
             Close;
          end;
    end;
      

  3.   

    方法一:adoconnection.GetTableNames
                    SL := TStringList.Create;
                    try
                          Dm1.ADOConn.GetTableNames(SL, False);
                    except
                          raise Exception.Create('装载源库列表错误!错误特征码2003');
                    end;
                     TableExist:=false;
                    for index := 0 to (SL.Count - 1) do
                    begin
                    //Export  Table
                         if  SL[index]='Your Table name' then
                         begin
                             TableExist:=true;
                             break;
                         end;  
                    SL.free ;
    方法二:ADOX
      

  4.   

    我也用adoconnection.GetTableNames,不错的。
      

  5.   

    sql中檢查臨時表:
    IF EXISTS( SELECT ID FROM TEMPDB..SYSOBJECTS WHERE ID=OBJECT_ID('TEMPDB..#Temp_VOH2') )
    DROP TABLE #Temp_VOH2檢查用戶表
    IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES 
          WHERE TABLE_NAME = 'A0')
     print'sdfa'
      

  6.   

    whaway(湘北清翔)方法1值的我们收藏,我以前看过就是没记性,呵呵。
    dm  是哪个属性?哪个控件的??--》
    在这里,作者是用的一个数据模块窗体,Dm1.ADOConn是指此窗体中的一个连接控件ADOConnection,你只要用一个ADOConnection连到一个Access,你就可以用
    ADOConnection.GetTableNames了。其中所的的数据存在第一个参数中,你可这样试一试:
    ADOConnection.GetTableNames(Memo1.Lines, false),Try It!