我的问题是:在delphi里用ADO连接oracle进行数据查询,需要建立一个临时表以便从中取得数据,怎么用代码实现?欢迎指导^_^

解决方案 »

  1.   

    我查到oracle中这样建立临时表,那么用于delphi中如何实现建表并且使用
    CREATE GLOBAL TEMPORARY TABLE TABLENAME (
       COL1  VARCHAR2(10),
       COL2  NUMBER
    ) ON COMMIT PRESERVE(DELETE) ROWS ;
      

  2.   

    你可以使用SQL语句执行上面一段代码啊/可以实现的
      

  3.   

    就像这样吗???
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    i:=i+1;
    query1.SQL.clear;
    query1.sql.add('create GLOBAL TEMPORARY  table dademo (t1 integer )');//建只有一个字段名为t1(类型为整数型)的临时表dademo
    query1.execsql;
    query1.SQL.clear;
    query1.sql.add('insert into dademo values('+inttostr(i)+')');//往临时表中加数据
    query1.ExecSql;
    //加完数据后,这中间你就可以对数据表进行查询,修改,删除等操作了
    query1.SQL.clear;
    query1.sql.Add('select * from dademo');
    query1.open;
    query1.active:=true;
    end;
      

  4.   

    我查到oracle中这样建立临时表,那么用于delphi中如何实现建表并且使用
    CREATE GLOBAL TEMPORARY TABLE TABLENAME (
       COL1  VARCHAR2(10),
       COL2  NUMBER
    ) ON COMMIT PRESERVE(DELETE) ROWS ;删除临时表:
    drop  table TABLENAME;
      

  5.   

    是把这个临时表在delphi中ADO上使用
      with datamod.ADOQuery1 do
          begin
          datamod.ADOQuery1.Active:=false;
          datamod.ADOQuery1.Sql.Clear;
          datamod.ADOQuery1.Sql.Add('CREATE GLOBAL TEMPORARY table b(名称 char(40),编号 char (40)) ON COMMIT DELETE ROWS');
          datamod.ADOQuery1.ExecSQL;
          datamod.ADOQuery1.Sql.Clear;
          datamod.ADOQuery1.Sql.Add('insert into b(名称,编号) select 名称,编号 from 线路参数表');
          datamod.ADOQuery1.ExecSQL;
          {datamod.ADOQuery1.SQL.clear;
          datamod.ADOQuery1.Sql.Add('select * from b');
          datamod.ADOQuery1.open;
          datamod.ADOQuery1.active:=true;
           end;
    这样执行后b表中怎么没有数据呢