CDaoRecordset::Open

가상 void 오픈 (int nOpenType = AFX_DAO_USE_DEFAULT_TYPE, LPCTSTR lpszSQL = NULL, int nOptions= 0 );
throw (CDaoException, CMemoryException);

가상 void 오픈 (CDaoTableDef *pTableDef,int nOpenType dbOpenTable, int = nOptions= 0 );
throw (CDaoException, CMemoryException);

가상 void 오픈 (CDaoQueryDef *pQueryDef,int nOpenType dbOpenDynaset, int = nOptions= 0 );
throw (CDaoException, CMemoryException);

매개 변수

nOpenType

다음 값 중 하나:

lpszSQL

다음 중 하나를 포함 하는 문자열 포인터:

nOptions

하나 이상의 옵션 아래에 나열 된입니다. 기본값은 0입니다. 가능한 값은 다음과 같습니다.:

pTableDef

nbsp;CDaoTableDef 개체에 대 한 포인터입니다. 이 버전은 테이블 형식 레코드 집합에 대해서만 유효 합니다. 이 옵션을 사용 하는 경우 CDaoDatabase 포인터 CDaoRecordset 을 구성 하는 데 사용 되지 않습니다; tabledef 상주 하는 데이터베이스를 사용 하는 대신,(&N)。

pQueryDef

CDaoQueryDef 개체에 대 한 포인터입니다. 이 버전은 다이너셋 형식 및 스냅숏 형식 레코드 집합에 대해서만 유효 합니다. 이 옵션을 사용 하는 경우 CDaoDatabase 포인터 CDaoRecordset 을 구성 하는 데 사용 되지 않습니다; querydef 상주 하는 데이터베이스를 사용 하는 대신,。

주의

레코드 집합에 대 한 레코드를 검색 하려면이 멤버 함수를 호출 해야 합니다. Open을 호출 하기 전에 recordset 개체를 구성 해야 합니다. 이렇게 하는 방법에 여러 가지가:

lpszSQL 매개 변수를 사용 하는 버전 일단 recordset이 열려에 여러 가지 방법 중 하나에서 레코드를 검색할 수 있습니다. 첫 번째 방법은 DoFieldExchange에 DFX 함수를 하는 것입니다. 두 번째 방법은 GetFieldValue 멤버 함수를 호출 하 여 동적 바인딩을 사용 하는 것입니다. 이러한 옵션을 개별적으로 또는 조합으로 구현할 수 있습니다. 그들은 결합 하는 경우 SQL 문에서 자신에 전달 열기를 호출 해야 합니다. 동적 바인딩에 대 한 자세한 내용은 다음 웹 사이트를 참조 하십시오. 문서 DAO 레코드 집합: 레코드 동적 바인딩 에서 Visual c + + 프로그래머 가이드.nbsp(&N);

오픈 CDaoTableDef 개체에 전달 하는 두 번째 버전을 사용할 때 결과 열 DoFieldExchange 와 DFX 메커니즘을 통해 바인딩 및/또는 GetFieldValue 를 통해 동적으로 바인딩할 수 있을 것입니다.

메모nbsp;??만 오픈 테이블 형식 레코드 집합에 대 한 CDaoTableDef 개체를 사용 하 여 호출할 수 있습니다(&N).

열기 , 쿼리 실행 및 결과 열 하거나 GetFieldValue 를 통해 동적으로 바인딩할 DoFieldExchange 를 통해 바인딩 및 DFX 메커니즘을 사용할 수 CDaoQueryDef 개체에서 전달의 세 번째 버전을 사용 하는 경우。

메모nbsp;??만 열려 다이너셋 형식 및 스냅숏 형식 레코드 집합에 대 한 CDaoQueryDef 개체를 사용 하 여 호출할 수 있습니다(&N).

오픈 lpszSQL 매개 변수를 사용 하는 첫 번째 버전에 대 한 레코드는 다음 표에 표시 된 기준에 따라 선택 됩니다.

LpszSQL 매개 변수 값 선택한 레코드에 의해 결정 됩니다. 예제
NULL GetDefaultSQL 에서 반환 하는 문자열。
하나 이상의 tabledefs 및/또는 querydef 이름 쉼표로 구분 된 목록。 DoFieldExchange 에 표시 되는 모든 열。
"고객"
선택한 열 목록에서 테이블 목록 지정 된 tabledef(s) 또는 querydef(s)에서 지정 된 열。
"CustId CustName 선택
고객 "

일반적인 절차는 오픈; NULL 전달 이 경우, 오픈 GetDefaultSQL, ClassWizard CDaoRecordset을 만들 때 생성 하는 재정의 가능한 멤버 함수 호출-클래스를 파생 합니다. 이 값에는 Classwizard에서 지정한 tabledef(s) 및/또는 querydef 이름 제공 합니다. 대신 lpszSQL 매개 변수에서 다른 정보를 지정할 수 있습니다.

당신이 무엇을 전달, 오픈 (문자열 전달 lpszSQL 문자열 추가 SQL 어디ORDERBY 절을 할 수 있습니다) 쿼리에 대 한 최종 SQL 문자열을 생성 한 다음 쿼리를 실행 합니다. Open 을 호출한 후 GetSQL 를 호출 하 여 생성 된 문자열을 검사할 수 있습니다. 。

레코드 집합 클래스의 필드 데이터 멤버를 선택 하는 데이터의 열에 바인딩됩니다. 첫 번째 레코드가 현재 레코드가 레코드가 반환 되는 경우。

필터 또는 정렬 등 recordset에 대 한 옵션을 설정 하려면 설정된 m_strSort 또는 m_strFilter 후 recordset 개체를 생성 하지만 오픈을 호출 하기 전에. Recordset이 이미 열려 후 레코드 집합의 레코드를 새로 고치는 경우 Requery 호출。

다이너셋 형식 또는 스냅숏 형식 recordset에서 Open 호출 또는 데이터 원본 SQL 문 또는 연결 된 테이블을 나타내는 tabledef를 참조 하는 경우 형식 인수;에 대 한 dbOpenTable 를 사용할 수 없습니다. 할 경우, MFC는 예외를 throw 합니다. Tabledef 개체는 연결 된 테이블을 나타내는지 여부를 확인 하려면 CDaoTableDef 개체를 만들고 GetConnect 멤버 함수 호출。

DbSeeChanges 플래그를 사용 하 여 트랩 편집 하거나 동일한 레코드를 삭제 하는 경우 다른 사용자 또는 컴퓨터에 다른 프로그램에 의해 변경 하고자 하는 경우. 예를 들어, 두 사용자가 같은 레코드 편집을 시작 하는 경우 Update 멤버 함수를 호출 하는 첫 번째 사용자 성공 합니다. 두 번째 사용자가 업데이트 를 호출 하면 CDaoException 이 throw 됩니다. 마찬가지로, 두 번째 사용자가 해당 레코드를 삭제 하려면 삭제 를 호출 하려고 하는 경우 첫 번째 사용자가 변경 되었습니다 이미 CDaoException 발생。

일반적으로 사용자를 업데이트 하는 동안이 CDaoException 면, 코드 해야 필드의 내용을 고치고 새로 수정된 된 값을 검색 합니다. 예외를 삭제 하는 과정에서 발생 하는 경우 코드는 데이터가 최근에 변경 되었음을 나타내는 메시지가 사용자에 게 새 레코드 데이터를 표시할 수 있습니다. 이 시점에서 코드 사용자 여전히 레코드를 삭제 하려고 하는 확인을 요청할 수 있습니다.

정방향 전용 사용 하 여 ODBC 데이터 원본에서 연 레코드 집합을 통해 응용 프로그램은 단일 통과 하는 경우 성능 향상을 위해 옵션 (dbForwardOnly) 스크롤。

열 레코드 집합에 대 한 자세한 내용은 다음 웹 사이트를 참조 하십시오. 문서 DAO 레코드 집합: 레코드 집합 만들기 DAO: 만들기, 열기, 및 DAO 개체 닫기 Visual c + + 프로그래머 가이드에서. 관련된 정보에 대 한 DAO 도움말의 "OpenRecordset 메서드" 항목을 참조 하십시오.

CDaoRecordset 개요 |nbsp; 클래스 멤버 (ko) | 계층 구조 차트(&N)

참고 항목nbsp;CDaoRecordset::Close, CDaoRecordset::CDaoRecordset(&N)

Index