创建的临时表
 with ADOQuery_tjmx do
  begin
    close;
    sql.Clear;
    //判断临时表是否存在,若存在,则添加记录即可,若不存在则创建    sql.Add('CREATE TABLE ##t_temp_slmx');
    sql.Add('(clbm varchar(15),clpm varchar(50),ggxh varchar(50),jldw     varchar(10),yssl float(18),');
    sql.Add('sssl float(18),jhdj float(18),jhzj float(18),fpjg float(18),kw bigint)');
    execsql;
  end;
我现在就是不知道用什么语句来判断是否已经在这之前创建了这个临时表
请各位大侠赐教
   我用的是c/s的sql2000 数据库!

解决方案 »

  1.   

    function TableIsExist(s:string):boolean ;
    var
     strTables:tstringlist;
     ADOCONNECTION:TADOConnection;
    begin
     strTables:=tstringlist.Create ;
     ADOCONNECTION:=TADOConnection.Create(NIL);
     ADOCONNECTION.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=... Security Info=False';
     ADOCONNECTION.LoginPrompt:=FALSE;
     ADOConnection.GetTableNames(strTables);
     if (strTables.IndexOf(s)=-1) then
       Result :=false else Result:=true ;
    end ;
      

  2.   

    if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[##t_temp_slmx']') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    用这个来判断,如果不存在,才创建了这个临时表,试试!
      

  3.   

    gogogo2003(caicai2003) 大侠:
     用你的方法总是找不到这个已经创立的临时表,程序报错时说:
    ADOCONNECTION.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=... Security Info=False';
    这一语句有问题,
    呵呵 我是个菜鸟,我不知道自己创立的临时表它到底存放在那个地方,创建的语句为:
    with ADOQuery_tjmx do
      begin
        close;
        sql.Clear;    
        sql.Add('CREATE TABLE ##t_temp_slmx');
        sql.Add('(clbm varchar(15),clpm varchar(50),ggxh varchar(50),jldw     varchar(10),yssl float(18),');
        sql.Add('sssl float(18),jhdj float(18),jhzj float(18),fpjg float(18),kw bigint)');
        execsql;
      end;
    呵呵 但我不知道创建之后它在那里,所以也就不知道到那里去找它,然后判断它是否已经存在!嘻嘻 盼大侠指点!:)
      

  4.   

    你要用你的代替这一句ADOCONNECTION.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=... Security Info=False';
    你可以在你的FORM上加的ADOCONNECTION,然后设置其ConnectionString指向你的数据库,完成后复制ConnectionString中的值,用它代替"ADOCONNECTION.ConnectionString:="后面的值即可.
    举例如下:
    我的数据库文件为F:\jxc\jxcdata.mdb(是ACCESS数据库)
    则语句为:
    ADOCONNECTION.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\jxc\jxcdata.mdb;Persist Security Info=False';
      

  5.   

    复制完ADOCONNECTION.ConnectionString的值后,要删掉你FORM上加的ADOCONNECTION
      

  6.   

    谢谢赐教 !!
    临时表原来一般放在tempdb 数据库的 sysobjects 表中。嘻嘻,难怪我一直找不到它在那里!
    多谢二位指点!