다음을 통해 공유


JetOpenTable 함수

적용 대상: Windows | Windows Server

JetOpenTable 함수

JetOpenTable 함수는 이전에 만든 테이블에 커서를 엽니다.

    JET_ERR JET_API JetOpenTable(
      __in          JET_SESID sesid,
      __in          JET_DBID dbid,
      __in          const tchar* szTableName,
      __in_opt      const void* pvParameters,
      __in          unsigned long cbParameters,
      __in          JET_GRBIT grbit,
      __out         JET_TABLEID* ptableid
    );

매개 변수

sesid

사용할 데이터베이스 세션 컨텍스트입니다.

dbid

테이블을 찾는 데 사용할 데이터베이스 식별자입니다.

szTableName

열 테이블의 이름입니다.

pvParameters

더 이상 사용되지 않습니다. NULL로 설정합니다.

cbParameters

더 이상 사용되지 않습니다. 0으로 설정합니다.

grbit

다음 옵션 중 0개 이상을 지정하는 비트 그룹입니다.

의미

JET_bitTableDenyRead

다른 데이터베이스 세션에서 읽기 액세스를 위해 테이블을 열 수 없습니다.

JET_bitTableDenyWrite

다른 데이터베이스 세션에서 쓰기 액세스를 위해 테이블을 열 수 없습니다.

JET_bitTableNoCache

이 테이블의 페이지를 캐시하지 마세요.

JET_bitTablePermitDDL

FixedDDL로 플래그가 지정된 테이블에서 DDL 수정을 허용합니다. 이 옵션은 JET_bitTableDenyRead 옵션과 함께 사용해야 합니다.

JET_bitTablePreread

테이블이 버퍼 캐시에 없을 수 있으며 사전 읽기가 성능에 도움이 될 수 있다는 힌트를 제공합니다.

JET_bitTableReadOnly

테이블에 대한 읽기 전용 액세스를 요청합니다.

JET_bitTableSequential

애플리케이션이 순차적으로 검사하므로 테이블은 디스크에서 매우 적극적으로 프리페치되어야 합니다.

JET_bitTableUpdatable

테이블에 대한 쓰기 액세스를 요청합니다.

ptableid

성공하면 테이블의 식별자를 가리킵니다. 실패 시 ptableid 에 대한 내용은 정의되지 않습니다.

반환 값

이 함수는 다음 반환 코드 중 하나를 사용하여 JET_ERR 데이터 형식을 반환합니다. 가능한 ESE 오류에 대한 자세한 내용은 확장 가능한 스토리지 엔진 오류오류 처리 매개 변수를 참조하세요.

반환 코드

설명

JET_errSuccess

작업이 성공적으로 완료되었습니다.

JET_errInvalidDatabaseId

dbid 는 유효한 데이터베이스 식별자가 아닙니다.

JET_errInvalidgrbit

grbit의 나쁜 조합이 전달되었습니다.

JET_errInvalidName

szTableName에 지정된 이름이 잘못되었습니다.

유효한 테이블 이름에 대한 자세한 내용은 JetCreateTable의 szTableName 매개 변수를 참조하세요.

JET_errObjectNotFound

데이터베이스에 없는 테이블을 열려고 했습니다.

JET_errOutOfCursors

엔진이 새 커서를 여는 데 필요한 리소스를 할당할 수 없기 때문에 작업이 실패했습니다. 주의 섹션을 참조하십시오.

JET_errTableInUse

테이블이 다른 데이터베이스 작업에서 사용되고 있습니다.

JET_wrnTableInUseBySystem

시스템에서 테이블을 사용하고 있음을 나타내는 심각하지 않은 경고입니다.

JET_errTableLocked

테이블은 다른 데이터베이스 작업에 의해 잠깁니다.

JET_errTooManyOpenTables

한 번에 너무 많은 고유 테이블을 열려고 했습니다. 주의 섹션을 참조하십시오.

설명

JetOpenTable로 열린 테이블은 일반적으로 JetCloseTable로 닫혀야 합니다. 이 규칙의 예외는 트랜잭션에서 JetOpenTable 이 호출되고 트랜잭션이 롤백될 때 발생합니다( JetRollback 사용). 트랜잭션을 롤백하면 테이블이 자동으로 닫힙니다. 이 경우 JetCloseTable을 사용하여 테이블을 닫는 것은 오류입니다.

JetOpenTable(예: MSysObjects, MSysUnicodeFixup)을 사용하여 시스템 테이블을 여는 것은 합법적입니다. 시스템 테이블의 스키마가 변경되어 시스템 테이블에 액세스하는 것은 권장되지 않습니다. 동시에 열 수 있는 고유 테이블 수는 JET_paramMaxOpenTables 직접 영향을 받습니다. 테이블이 현재 열려 있으면 테이블에 새 커서가 만들어집니다. 커서 리소스는 JET_paramMaxCursorsJetSetSystemParameter를 사용하여 구성됩니다. JetDupCursor도 참조하세요.

요구 사항

요구 사항

클라이언트

Windows Vista, Windows XP 또는 Windows 2000 Professional이 필요합니다.

서버

Windows Server 2008, Windows Server 2003 또는 Windows 2000 Server가 필요합니다.

머리글

Esent.h에 선언되었습니다.

라이브러리

ESENT.lib를 사용합니다.

DLL

ESENT.dll 필요합니다.

유니코드

JetOpenTableW(유니코드) 및 JetOpenTableA(ANSI)로 구현됩니다.

참고 항목

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetDupCursor
JetRollback
JetSetSystemParameter
리소스 매개 변수