WillExecute 이벤트는 질의가 수행되기 이전에 발생하는 이벤트이며, 다음과 같은 구문을 사용한다.
WillExecute (Source, CursorType, LockType, Options, adStatus, pCommand, pRecordset, pConnection)
인수 | 데이터 형식 | 설명 |
Source | String | SQL 문장 또는 저장 프로시저의 이름을 포함하는 문자열이다. |
CursorType | ADODB.CursorTypeEnum | 생성될 Recordset 개체의 Cursor Type을 나타낸다. WillExecute 이벤트가 발생할 때, 이 매개 변수가 adOpenUnspecified로 설정되어 있으면 매개 변수를 변경할 수 없다. |
LockType | ADODB.LockTypeEnum | 생성될 Recordset 개체의 Lock Type을 나타낸다. WillExecute 이벤트가 발생할 때, 이 매개 변수가 adLockUnspecified로 설정되어 있으면 매개 변수를 변경할 수 없다. |
Options | Long | 명령을 실행할 때 또는 Recordset 개체를 생성할 때 사용된 옵션이며, Options 매개변수에 전달된 옵션 값을 나타낸다. |
adStatus | ADODB.EventStatusEnum | EventStatusEnum 상태 값으로 이벤트를 발생시킨 작업이 성공하면 adStatusOK로 설정되고 작업이 실패하면 adStatusErrorsOccurred로 설정된다. |
pCommand | ADODB.Command | 이 이벤트에 적용된 Command 개체를 나타낸다. Command 개체가 사용되지 않았다면 설정되지 않는다. |
pRecordset | ADODB.Recordset | Execute 메서드에 의해서 생성된 Recordset 개체를 나타낸다. Action Query와 같이 반환 값이 없는 명령이 실행된 경우에는 Empty 값을 나타낸다. |
pConnection | ADODB.Connection | 이벤트를 발생시킨 Connection 개체를 나타낸다. |
이 이벤트의 프로시저 내에서 매개변수들은 명령이 실행되기 전에 변경될 수 있다. 이 이벤트는 사용자가 ConnectionString을 작성해서 작업할 수 있도록 지원하는 응용 프로그램에서 사용자의 접근을 통제하기 위해서 사용할 수 있다.
다음 코드는 사용자가 특정 테이블에 질의를 수행하는 것을 방지하는 예이다.
Private Sub adoCn_WillExecute(Source As String,
_ |
위의 예는 사용자가 Authors 테이블에 접근하는 것을 방지하는 예이다. 또한 ad-hoc 삽입이나 삭제와 같은 작업을 방지하기 위해서 이 이벤트를 응용할 수 있다