如题!连接=New Connection(连接字符串)
//一
连接.Open
执行SQL
连接.close //此处关闭了,我再Open并执行SQL语句,会话是新创建的还是上次的?//二
连接.open
连接.BeginTransaction
执行SQL
连接.Commit //此处Commit了,我再Open、BeginTransaction并执行SQL语句,会话是新创建的还是上次的?
连接.close但是对Oracle的会话不怎么理解,望各位解惑!!谢谢

解决方案 »

  1.   


    连接=New Connection(连接字符串)
    //一
    连接.Open
    执行SQL
    连接.close //此处关闭了,我再Open并执行SQL语句,会话是新创建的还是上次的?--答:由于connection已经关闭,再open并执行SQL,会话是新创建的,就跟在SQLPLUS中,当用户输入用户名和密码并确认时,经过数据库验证并建立connection,连接建立的同时该用户也建立了一个session,不过此时session为inactive状态,当用户session发送SQL语句时,session被激活,SQL语句通过connection传送到server process,进而传送到instance进行处理。connection是物理上的,而session是逻辑上标识不同用户的,在建立connection的同时自动开启了一个session.开启一个连接就对应了一个session,如果连接关闭了,即此次会话就结束了,重新连接那么对应的是另一个session。//二
    连接.open
    连接.BeginTransaction
    执行SQL
    连接.Commit //此处Commit了,我再Open、BeginTransaction并执行SQL语句,会话是新创建的还是上次的?
    连接.close--答:在同一个连接内,不同的事务是共处一个session的,就跟在SQLPLUS中一个session存在多个事务一样。对于事务,commit或是rollback,该事务就结束,然而此时连接还在,即session也在。
      

  2.   

    断开一次,再重新连接,就是新的session,
    跟事务没有关系
      

  3.   

    一:是新的會話
    二:是原來的會話session跟transaction無關