InfoMessage 이벤트

교교 2014.05.12 08:31:25

InfoMessage 이벤트는 adoErrors 컬렉션에 정보 메시지가 추가될 때 발생하는 이벤트이며, 다음과 같은 구문을 사용한다.

InfoMessage (pError, adStatus, pConnection)

인수 데이터 형식 설명
pError ADODB.Error 오류가 발생해서 adStatus가 adStatusErrorsOccurred 이면 발생한 오류에 대한 정보를 가지고 있는 개체이다. 그렇지 않을 경우에는 설정되지 않는다.
adStatus ADODB.EventStatusEnum EventStatusEnum 상태 값으로 이벤트를 발생시킨 작업이 성공하면 adStatusOK로 설정되고 작업이 실패하면 adStatusErrorsOccurred로 설정된다.
pConnection ADODB.Connection 메시지를 발생시킨 Connection 개체를 나타낸다.

이 이벤트는 ConnectionEvent 작업이 성공적으로 수행되고 Provider가 추가 정보를 반환할 때마다 발생한다.
이 이벤트를 사용해서 SQL Server에 ODBC 데이터 소스를 사용해서 접속할 때 발생하는 메시지를 로그에 저장하도록 구현할 수 있다.

데이터베이스에 접속하는 코드를 다음과 같이 작성한다.

Private Sub cmdOpenODBC_Click()
   Dim strConn As String

   Set adoCn = New ADODB.Connection

   strConn = "Driver={SQL Server};" & _
         "Server=(local);Database=Pubs;UID=sa;PWD="

   adoCn.Open strConn
End Sub

위의 코드가 수행되면 InfoMessage 이벤트가 발생하게 된다. 이 이벤트 프로시저에 다음 코드를 기술한다.

Private Sub adoCn_InfoMessage(ByVal pError As ADODB.Error, _
      adStatus As ADODB.EventStatusEnum, _
         ByVal pConnection As ADODB.Connection)

   For Each pError In pConnection.Errors
      Debug.Print pError.Description
   Next
End Sub

위의 예제의 결과는 다음과 같다.

  [Microsoft][ODBC SQL Server Driver][SQL Server]Changed database context to 'Pubs'.

  [Microsoft][ODBC SQL Server Driver][SQL Server]Changed language setting to us_english.