if qlistbox1.ItemIndex>=0  then
         begin
            OracleQuery1.Close;
            OracleQuery1.SQL.clear;
          
             OracleQuery1.SQL.add(' update sutt t set t.sex=(select p.id from param p where p.name='''+v_sex+'''), ');
             OracleQuery1.SQL.add(' t.vehicle_type=(select p.id from pam p where p.name='''+v_vehicle_type+'''),t.class_nbr='''+v_class_nbr+''',');
             OracleQuery1.sql.add(' t.address='''+v_address+''',t.student_name='''+v_name+''' ');
             OracleQuery1.SQL.Add(' where t.school_id='+qcombobox1.Value+' and t.student_name like ''%'+edit8.Text+'%''  ');
             OracleQuery1.SQL.Add(' and t.student_nbr='+edit9.text+' ');             OracleQuery1.Execute;
             OracleQuery1.Close;
             OracleSession1.Commit;
           
             showmessage(edit8.Text+'修改成功!');
end;我这样 update之后 我的sutt 表就锁死 是怎么回事啊 
语句哪里不对了啊  update 这后 我也提交了啊 

解决方案 »

  1.   

    sql好像没啥问题
    把OracleSession1.Commit; 删掉试试
      

  2.   

    应该不是DELPHI的问题
    你的UPDATE 会不会有别的问题,譬如update里的SELECT 以及整个语句的执行时间过长,没有结束
    优化一下你的SQL
      

  3.   

    begintrans 和ROOBACK在哪里?
      

  4.   

    OracleQuery1.Close; 把这一句去丢看看
      

  5.   

    调试一下,把SQL语句放到SQLPLUS中执行,看看会不会有问题??
      

  6.   

    先在sqlplus里检查sql语句有没问题?