Development2006. 4. 26. 15:52

Connection 개체의 메서드

메서드설명
BeginTrans진행 중인 명령(Command)의 실행을 중단한다.
Cancel진행 중인 명령(Command)의 실행을 중단한다.
Close활성화된 Connection 개체를 닫는다.
CommitTrans활성화된 Connection 개체에서 현재의 트랜잭션을 Commit한다.
Execute명령을 실행한다. 만약 Recordset이 반환된다면, 디폴트 Recordset 개체로 반환된다.
OpenConnection 개체를 데이터 소스에 연결한다.
OpenSchemaRecordset 개체의 스키마 정보를 반환한다.
RollbackTrans활성화된 Connection 개체에서 현재의 트랜잭션을 Rollback 한다.

BeginTrans, CommitTrans, RollbackTrans 메서드

이 세개의 메서드는 트랜잭션을 관리하는 메서드이다. BeginTrans 메서드는 새로운 트랜잭션을 시작하며, CommitTrans 메서드는 시작된 트랜잭션의 변경된 내용을 저장하고 트랜잭션을 종료시킨다. RollbackTrans 메서드는 시작된 트랜잭션 동안에 변경된 내용을 취소하고 트랜잭션을 종료시킨다.

이 세 메서드는 다음과 같은 구문을 사용한다.

adoCn.BeginTrans

adoCn.CommitTrans

adocn.RollbackTrans

BeginTrans, CommitTrans, RollbackTrans 메서드는 CusorLocation이 클라이언트인 Connection 개체에서는 작동하지 않는다.

[예제 1]

다음 예제는 Pubs 데이터베이스의 Titles 테이블의 Type 필드의 값이 "psychology"인 필드의 값을 "self_help"로 변경한 후, 코드의 마지막에서 트랜잭션을 Rollback 하는 예이다.

Private Sub cmdBeginTrans_Click()

  Dim adoCn As New ADODB.Connection

  Dim adoRs As New ADODB.Recordset

  Dim strConn As String



  strConn = "Provider=sqloledb;" & _

        "Data Source=(local);Initial Catalog=Pubs;User ID=sa;Password=; "



  adoCn.Open strConn



  adoRs.Open "Titles", adoCn, adOpenKeyset, adLockOptimistic, adCmdTable



  adoCn.BeginTrans



  ' Type이 "psychology" 이면 "self_help"로 변경한다.

  Do Until adoRs.EOF

     If Trim(adoRs!Type) = "psychology" Then

        adoRs!Type = "self_help"

        adoRs.Update

     End If



     adoRs.MoveNext

  Loop



  ' 데이터베이스로부터 다시 Recordset의 내용을 가져온다.

  adoRs.Requery



  adoRs.MoveFirst



  Do While Not adoRs.EOF

     Debug.Print adoRs!Title & " - " & adoRs!Type

     adoRs.MoveNext

  Loop



  ' 모든 변경 작업을 취소한다.

  adoCn.RollbackTrans



  adoRs.Requery



  adoRs.MoveFirst



  Do While Not adoRs.EOF

     Debug.Print adoRs!Title & " - " & adoRs!Type

     adoRs.MoveNext

  Loop



  adoRs.Close

  Set adoRs = Nothing



  adoCn.Close

  Set adoCn = Nothing

End Sub

[예제 2]

다음 예제는 Recordset 개체를 통한 트랜잭션이 아니라 Connection 개체의 Execute 메서드를 사용한 트랜잭션을 Rollback 하는 예이다.

Private Sub cmdRollbackTrans_Click()

  Dim adoCn As New ADODB.Connection

  Dim strConn As String



  strConn = "Provider=sqloledb;" & _

        "Data Source=(local);Initial Catalog=Pubs;User ID=sa;Password=; "



  adoCn.Open strConn



  adoCn.BeginTrans



  adoCn.Execute "Update Titles Set Type = 'self_help' Where Type = 'psychology'"



  ' 모든 변경 작업을 취소한다.

  adoCn.RollbackTrans



  adoCn.Close

  Set adoCn = Nothing

End Sub





출처 : http://blog.naver.com/aram96/20010872730

Posted by Blue*

댓글을 달아 주세요