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
리소스 매개 변수