简要程序如下:(其中DatabaseName是通过BDE连的oracle)
  Str :='select * from aa';
  TmpQry :=TQuery.Create(application);
  try
    TmpQry.DatabaseName :=Database1.DatabaseName ;
    with TmpQry do begin
      close;
      sql.Clear;
      sql.add(str);
      Open;
    end;
    TmpQry.First;
    while not TmpQry.Eof do begin
      LastCardNo :=TmpQry.FieldbyName('SFZ_ID').AssTring;
      EndCardNo :=GetPersonNo(trim(LastCardNo));
      Str1 :=' Insert into gg(SFZ_ID) values(:EndCardNo)';        Qry_PubSou.close;
        Qry_PubSou.sql.Clear;
        Qry_PubSou.sql.add(str1);
        Qry_PubSou.ParamByName('EndCardNo').asString :=EndCardNo;
        Qry_PubSou.execsql;
        //Qry_PubSou.Post;      TmpQry.Next;
    end;
    Showmessage('OK!');
  finally
    TmpQry.Free;
  end;
我分别在不同版本的oracle上试过,其中oracle8.05可以运行,
                                   oracle8i和9i不能插入表gg,不过有事务就可进去!
  想问问什么原因?

解决方案 »

  1.   

    oracle8i和9i不能插入表gg,不过有事务就可进去!
    ===========你说的不能插入是指弹出错误,还是发现数据库中没有数据如果数据库中没有数据,可能因为你上面查出的数据时空的
      

  2.   

    to lovendII(流氓都做了城管) 
        没有语法和逻辑上的错,没有弹出错误,只要加上事务开始,和提交就行了!
      

  3.   

    这个问题应当是DBE对ORACLE的支持不够好的原因,
    建议你用第三方的对ORACLE的数据库组建,
    如ODAC4.0.0.4,这是一个很好的东西。