CRecordset::Open

가상BOOL오픈 (UINTnOpenType=AFX_DB_USE_DEFAULT_TYPE,LPCTSTRlpszSQLNULLDWORDdwOptions=없음=);
던져 ( CDBException, CMemoryException );

반환 값

0이 아닌 경우 CRecordset 개체를 열 수 성공적으로; 그렇지 않으면 0 CDatabase::Open (호출) 하는 경우 0을 반환 하는 경우。

매개 변수

nOpenType

AFX_DB_USE_DEFAULT_TYPE, 기본값을 그대로 사용 하거나OpenType 열거형에서 다음 값 중 하나를 사용 하 여 :

lpszSQL

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

dwOptions

아래 나열 된 값의 조합을 지정할 수 있는 마스크입니다. 이들 중 일부는 상호 배타적입니다. 기본값은 없음。

주의

레코드 집합에 의해 정의 된 쿼리를 실행 하려면이 멤버 함수를 호출 해야 합니다. Open을 호출 하기 전에 recordset 개체를 구성 해야 합니다.

이 레코드 집합의 데이터 원본이 연결 열기호출 하기 전에 recordset을 지정 하는 방법에 따라 달라 집니다. CDatabase 개체는 데이터 원본에 연결 되지 않은 레코드 집합 생성자에 전달 하는 경우이 멤버 함수는 GetDefaultConnect 를 사용 하 여 데이터베이스 개체를 열려고 시도 합니다. 레코드 집합 생성자에 NULL 을 전달 하면 생성자, 당신을 위해 CDatabase 개체를 생성 하 고 열기 데이터베이스 개체에 연결 하려고 합니다. 대 한 자세한 내용은 레코드 집합 및 이러한 다양 한 상황에서 연결 닫기, 닫기 참조。

메모nbsp;CRecordset 개체를 통해 데이터 원본에 액세스 항상 공유 하 고 있습니다. CDaoRecordset 클래스와 달리 단독으로 데이터 소스를 여는 CRecordset 개체를 사용할 수 없습니다(&N).

일반적으로 SQL 선택 문을, 쿼리 다음 표의 기준에 따라 레코드를 선택 열기를 호출 하는 경우。

LpszSQL 매개 변수 값 선택한 레코드에 의해 결정 됩니다. 예제
NULL GetDefaultSQL 에서 반환 하는 문자열。
SQL 테이블 이름 DoFieldExchange 또는 DoBulkFieldExchange 테이블 목록의 모든 열。
 "고객"
미리 정의 된 쿼리 (저장된 프로시저) 이름 열을 반환 하는 쿼리 정의。
"{전화 OverDueAccts}"
선택한 열 목록에서 테이블 목록 지정 된 테이블에서 지정 된 열。
"CustId, 고객 으로부터 CustName 선택"

! 경고nbsp;??SQL 문자열에 있는 여분의 공백을 삽입 하지 마십시오 주의 해야 합니다. 예를 들어, 호출 키워드는 중괄호 사이의 공백을 삽입 하는 경우 MFC SQL 문자열 테이블 이름으로 오해를 예외가 발생 하는 SELECT 문을 통합 합니다. 마찬가지로, 귀하의 미리 정의 된 쿼리는 출력 매개 변수를 사용 하는 경우 삽입 하지 않습니다는 중괄호 사이 공백이 및 '?' 기호. 마지막으로, 하지 삽입 해야 합니다는 중괄호 앞에 공백이 CALL 문을 또는 선택 성명에서 선택 키워드 앞(&N)。

일반적인 절차는 오픈; NULL 전달 이 경우 오픈 GetDefaultSQL을 호출합니다. 파생 된 CRecordset 클래스를 사용 하는 경우 GetDefualtSQL 마법사에 지정 된 테이블 이름을 제공 합니다. 대신 lpszSQL 매개 변수에서 다른 정보를 지정할 수 있습니다.

당신이 무엇을 전달, 오픈 (문자열 전달 lpszSQL 문자열 추가 SQL 어디 및 ORDER BY 절을 할 수 있습니다) 쿼리에 대 한 최종 SQL 문자열을 생성 한 다음 쿼리를 실행 합니다. Open을 호출한 후 GetSQL 를 호출 하 여 생성 된 문자열을 검사할 수 있습니다. 레코드 집합이 SQL 문을 생성 방법과 레코드를 선택 하는 방법에 대 한 자세한 내용은 문서를 참조 하십시오 레코드 집합: 레코드 선택 방법 (ODBC) Visual c + + 프로그래머 가이드。

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

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

추가 예제를 비롯 한 자세한 내용은 다음 웹 사이트를 참조 하십시오. 문서 레코드 집합 (ODBC) 레코드 집합: 레코드 선택 방법 (ODBC), 및 Recordset: 만들기 및 레코드 집합 (ODBC)을 닫는 Visual c + + 프로그래머 가이드 에서。

예제

다음 코드 예제에서는 보여 오픈 전화의 다른 형태。

/ / rs는 CRecordset 또는
/ / Crecordset에서 파생 된 개체

/ / 기본 SQL 문을 사용 하 여 오픈 rs
/ / 책갈피, 구현 및 해제
/ / 자동 더러운 필드 검사
rs입니다.열기 (CRecordset::snapshot, NULL,
 nbsp;?????? CRecordset::useBookmarks |
 ??????? CRecordset::noDirtyFieldCheck);

/ / 완전 한 SELECT 문 전달
/ / 다이너셋 형식으로 오픈
rs입니다.열기 (CRecordset::dynaset,
 ??????? _T ("선택 L_Name 고객 으로부터"));

/ / 모든 기본값을 적용
rs입니다.(오픈)(&N)

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

참고 항목nbsp;CRecordset::CRecordset, CRecordset::Close, CRecordset::GetDefaultSQL, CRecordset::GetSQL, CRecordset::m_strFilter, CRecordset::m_strSort, CRecordset::Requery(&N)

Index