ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select 入库单号,数量,单价,金额 into #tempDB from EnterBase where 入库单号=1');
  ADOQuery1.SQL.Add('select * from #tempDB');
  ADOQuery1.Open;
  毫无问题,在sqlserver的查询分析器中也能找到tempdb下的tempDB临时表,但改为:
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select 入库单号,数量,单价,金额 into #tempDB from EnterBase where 入库单号=:入库单号');
  ADOQuery1.Parameters.ParamByName('入库单号').Value :=1;
  ADOQuery1.SQL.Add('select * from #tempDB');  
  ADOQuery1.Open;
  在程序中可以察看该临时表,但在查询分析器中则找不到这个临时表,而且
在将此临时表中的所有记录插入另一个表时错误提示:对象名#tempDB无效,不知道什么原因,请指教!

解决方案 »

  1.   

    试着把‘入库单号’改成英文‘rkd’看看!
      

  2.   

    试过了,不行,还是提示'对象名#tempDB无效',我这么做到是可以:
    s :string;s:='select 入库单号,数量,单价,金额 into #tempDB from EnterBase where 入库单号='+IntToStr(i);
    ADOQuery1.SQL.Add(s);
    看来问题就是出在动态参数这里,就是不明白为什么,高手赐教啊!
      

  3.   

    studying!
    up
    up
    up
    up
    up
    up
      

  4.   

    ADOQuery1.SQL.Add(Format('select 入库单号,数量,单价,金额 into #tempDB from EnterBase where 入库单号=%d',[1]));