ADO 의 비동기 실행 을 어떻게 사용 합 니까?
FetchComplete 이 벤트 는 비동기 로 기록 집합 을 불 러 올 때 감시 하 는 기록 로 딩 에 사 용 됩 니 다.
FetchProgress 이 벤트 는 사용자 에 게 진행 표시 기의 현재 상 태 를 표시 할 수 있 는 기록 집합 에 대한 정 보 를 제공 합 니 다.
기록 집합 완료 시 자극
FetchComplete 이벤트 불 러 오기.
정상 으로 돌아가다
더 많은 정보
시스템 필수 구성 요소 소프트웨어 는 FetchProgress 와 FetchComplete 이벤트 가 MDAC 2.5 또는 더 높 은 버 전에 서 만 정상적으로 작 동 하도록 요구 합 니 다.아래 마이크로 에서...
시스템 필수 구성 요소
소프트웨어 요구 사항
Microsoft Data Access Components
(http://msdn.microsoft.com/library/default.asp?url=/downloads/list/dataaccess.asp)
Visual Studio Product Updates
(http://msdn.microsoft.com/vstudio/downloads/updates.asp)
부호화 요구 사항
정상 으로 돌아가다
속성
ADO 의 비동기 행위 에 영향 을 주 는 기록 집합 속성 이 두 개 있 습 니 다.기록 집 을 열기 전에 이 속성 을 설정 할 수 있어 야 합 니 다.
정상 으로 돌아가다
이벤트
FetchProgress FetchProgress 는 네 개의 매개 변 수 를 가지 고 있 습 니 다.
FetchComplete FetchComplete 는 세 개의 매개 변 수 를 가지 고 있 습 니 다.
回到顶端
예제 코드
다음 예제 에 서 는 Visual Basic 의 FetchProgress 와 FetchComplete 이 벤트 를 어떻게 사용 하 는 지 보 여 줍 니 다.이 예제 에 서 는 Pubs 라 는 ODBC 데이터 원본 을 사용 하여 SQL Server 가 첨부 된 Pubs 데이터베이스 에 연결 합 니 다.
Option Explicit
Const strConn = "DSN=Pubs"
Const strDefaultSQL = "SELECT * FROM Titles"
Dim cn As ADODB.Connection
Dim WithEvents rs As ADODB.Recordset
Private Sub Form_Load()
Command1.Caption = "Go"
Text1.Text = strDefaultSQL
Set cn = New ADODB.Connection
cn.Open strConn
End Sub
Private Sub Command1_Click()
Dim strSQL As String
strSQL = Text1.Text
Set rs = New ADODB.Recordset
With rs
.CursorLocation = adUseClient
.Properties("Initial Fetch Size") = 2
.Properties("Background Fetch Size") = 4
Debug.Print "Start"
Debug.Print "Initial Fetch Size: " & _
.Properties("Initial Fetch Size")
Debug.Print "Background Fetch Size" & _
.Properties("Background Fetch Size")
.Open strSQL, cn, , , adAsyncFetch
End With
End Sub
Private Sub rs_FetchProgress(ByVal Progress As Long, _
ByVal MaxProgress As Long, _
adStatus As ADODB.EventStatusEnum, _
ByVal pRecordset As ADODB.Recordset)
Debug.Print "Fetch: " & Progress & _
" Max: " & MaxProgress
End Sub
Private Sub rs_FetchComplete(ByVal pError As ADODB.Error, _
adStatus As ADODB.EventStatusEnum, _
ByVal pRecordset As ADODB.Recordset)
If adStatus <> adStatusOK Then
Debug.Print "Failed"
Debug.Print "Error: " & pError.Number & " - " & pError.Description
Else
Set DataGrid1.DataSource = pRecordset
Debug.Print "Done"
End If
End Sub
*********************************************************
해 보면 안 돼.
아래 줄
'위 드 이 벤트 스 키 워드 는 아 이 템 카 테 고리 의 변 수 를 알 립 니 다.'사건 을 일 으 키 는 물건 을 사건 의 출처 (event source) 라 고 부 르 며 사건 의 출처 로 인 한 사건 을 처리 합 니 다.With Evnets 는 ActiveX 개체 가 일 으 킨 사건 에 대응 하 는 데 사 용 됩 니 다."물건 분류 모듈 에 만 적 용 됩 니 다."위 드 이벤트 로 변 수 를 개별적 으로 선언 할 수 있 지만, 진열 을 만 드 는 데 사용 할 수도 없고, New 와 동시에 사용 할 수도 없습니다.
Dim WithEvents cn As ADODB. Connection Dim WithEvents Recordset 개체 As ADODB. Recordset
Private Sub cn_ConnectComplete (ByVal pError As ADODB. Error, adStatus As ADODB. EventStatusEnum, ByVal pConnection As ADODB. Connection) '라 이브 러 리 연결 완료 시 ConnectComplete 이벤트 종료 서브 를 촉발 합 니 다.
Private Sub cn_Disconnect (adstatus As ADODB. EventStatusEnum, ByVal pConnection As ADODB. Connection) '인 터 럽 트 라 이브 러 리 연결 은 Disconnect 이벤트 종료 Sub 를 촉발 합 니 다.
Private Sub cn_ExecuteComplete (ByVal Records Affected As Long, ByVal pError As ADODB. Error, adStatus As ADODB. EventStatusEnum, ByVal pCommand As ADODB. Command, ByVal pRecordset As ADODB. Recordset, ByVal pConnection As ADODB. Connection) '연결 물 체 는 SQL 명령 을 실행 하 는 실행 방법 을 사용 할 때 ExecuteComplete 이벤트 종료 서브 를 실행 합 니 다.
Private Sub Form_Load () '폼 불 러 오기 이벤트 OpenCN' 데이터베이스 연결 끝 서브 열기
Private Sub OpenCN () '데이터베이스 연결 열기;Connection 의 비동기 실행 Dim strCN As String '은 WithEvents 를 사용 하기 때문에 새로운 키 워드 를 사용 하여 하나의 아 이 템 유형의 새로운 실행 개체 Set cn = New ADODB. Connection 을 만들어 야 합 니 다.
'데이터베이스 연결 문자열 strCN = "Provider = Microsoft. Jet. OLEDB. 4.0;" &"Data Source=C:/XXOO/ABC.mdb;Persist Security Info=False"
With cn 'Cursor Location 속성, 자료 지표 서비스의 위 치 를 설정 하거나 전송 합 니 다.이 설정 값 을 사용 하면 장점 이 있 습 니 다. 앞으로 트 레이스 호환성 에 대해 '동의어 의 adUseClient Batch 도 지원 을 받 습 니 다.(예 를 들 어 관련 이 없 는 Recordset) 의 일부 기능 은 '서보 의 자료 기준 으로 시 뮬 레이 션 할 수 없 기 때문에 이 설정 값 에서 이 기능 을 사용 할 수 없습니다. cursor Location = adUseClient' adConnectUnspecified (미리 설정 값)동기 화 연결 을 만 듭 니 다.'이 리 턴 이 없 으 면 프로그램 은 계속 아래로 실 행 됩 니 다. (라 이브 러 리 연결 은 동기 화 되 지 않 고 실 행 됩 니 다.)' 라 이브 러 리 의 연결 이 완료 되 기 를 기다 리 지 않 고 DoEventsLoopEnd SubPrivate Sub OpenRS () '자료 록 (집합) 을 엽 니 다.; Connection 의 비동기 실행 '상수 설명' adcmdText 는 공급 자가 Source 를 명령 의 문자 로 정의 합 니 다. 'AdCmdTable 은 ADO 가 SQL 조 회 를 생 성하 고 Source 에서 지정 한 자료 표 에서 모든 자료 열 로 전 송 됩 니 다.' AdCmdTableDirect 는 공급 자가 Source 에서 지정 한 자료 표 에서 모든 자료 열 로 전 송 됩 니 다. '공급 자 는 Source 를 사전 저장 프로그램 으로 평가 합 니 다. "AdCmdUnknown 은 Source 도입부 에서 알 수 없 는 명령 형식 을 표시 합 니 다." AdCmdFile 은 저장 되 어 있 음 을 표시 합 니 다.Recordset 은 Source 에서 지정 한 파일 을 복원 합 니 다. 'AdAsyncExecute 는 Source 가 비동기 적 으로 실 행 됨 을 나 타 냅 니 다.' AdAsyncFetch 는 Initial Fetch Size 속성 에서 지정 한 초기 수량 이 캡 처 되면 나머지 자료 열 이 비동기 적 으로 캡 처 됩 니 다. '필요 한 자료 열 이 캡 처 되 지 않 으 면 필요 한 자료 열 을 얻 을 때 까지 주요 실행 실 마 리 를 동상 에 걸 립 니 다.'AdAsyncFetchNonBlocking 은 캡 처 할 때 주 실행 서 비 스 를 동결 하지 않 는 다 고 밝 혔 습 니 다. '필요 한 자료 열 을 캡 처 하지 않 으 면 현재 의 자료 열 은 파일 의 끝으로 자동 으로 이동 합 니 다. Set Recordset 개체 = Connection 개체. Execute (SQL 문법, adAsyncExecute) Do Until Recordset 개체. State = 1' Recordset 의 시작 (실행) 상태 DoEventsLoopEnd Sub
Private Sub Recordset 아 이 템 FetchComplete (ByVal pError As ADODB. Error, adStatus As ADODB. EventStatusEnum, ByVal pRecordset As ADODB. Recordset) '비동기 동작 으로 모든 자 료 를 Recordset 에 입력 하면 이 사건 이 발생 합 니 다. End Sub
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
깊이 중첩된 객체를 정확히 일치 검색 - PostgreSQL목차 * 🚀 * 🎯 * 🏁 * 🙏 JSON 객체 예시 따라서 우리의 현재 목표는 "고용주"사용자가 입력한 검색어(이 경우에는 '요리')를 얻고 이 용어와 정확히 일치하는 모든 사용자 프로필을 찾는 것입니다. 즐거운 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.