JetCreateDatabase2 함수

적용 대상: Windows | Windows Server

JetCreateDatabase2 함수

JetCreateDatabase2 함수는 최대 데이터베이스 크기가 지정된 ESE 데이터베이스 엔진과 함께 사용할 데이터베이스 파일을 만들고 연결합니다. cpgDatabaseSizeMax가 0으로 설정된 JetCreateDatabase2를 호출하는 것은 szConnect가 NULL로 설정된 JetCreateDatabase를 호출하는 것과 동일합니다. 현재 instance당 최대 7개의 데이터베이스를 만들 수 있습니다.

    JET_ERR JET_API JetCreateDatabase2(
      __in          JET_SESID sesid,
      __in          const tchar* szFilename,
      __in          const unsigned long cpgDatabaseSizeMax,
      __out         JET_DBID* pdbid,
      __in          JET_GRBIT grbit
    );

매개 변수

sesid

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

szFilename

만들 데이터베이스의 이름입니다.

cpgDatabaseSizeMax

데이터베이스 페이지의 최대 크기입니다. 기본 데이터베이스 페이지 크기는 4KB이며 데이터베이스를 만들기 전에 JetSetSystemParameter 를 사용하여 변경할 수 있습니다.

0을 전달하면 데이터베이스 엔진에서 적용되는 최대값이 없음을 의미합니다.

pdbid

성공적으로 호출할 때 데이터베이스의 식별자가 포함된 버퍼에 대한 포인터입니다. 실패 시 값이 정의되지 않습니다.

grbit

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

의미

JET_bitDbOverwriteExisting

기본적으로 JetCreateDatabase 또는 JetCreateDatabase2 가 호출되고 데이터베이스가 이미 있는 경우 API 호출이 실패하고 원래 데이터베이스를 덮어쓰지 않습니다. JET_bitDbOverwriteExisting 이 동작을 변경하고 이전 데이터베이스를 새 데이터베이스로 덮어씁니다. Windows XP 이상.

JET_bitDbRecoveryOff

JET_bitDbRecoveryOff 로깅을 해제합니다. 이 비트를 설정하면 치명적인 이벤트가 발생한 후 로그 파일을 재생하고 데이터베이스를 일관된 사용 가능한 상태로 복구할 수 없게 됩니다.

JET_bitDbShadowingOff

JET_bitDbShadowingOff 설정하면 일부 내부 데이터베이스 구조(섀도링)의 중복이 비활성화됩니다. 이러한 구조의 중복은 복원력을 위해 수행되므로 JET_bitDbShadowingOff 설정하면 복원력이 제거됩니다.

반환 값

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

반환 코드

설명

JET_errSuccess

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

JET_errDatabaseDuplicate

szFilename에 라는 데이터베이스가 이미 있습니다. 이 오류가 반환되면 데이터베이스가 연결되지 않습니다.

JET_errDatabaseInUse

단독 액세스가 요청되었지만 부여할 수 없거나 다른 세션에서 데이터베이스를 독점적으로 연 경우 반환할 수 있습니다.

JET_errDatabaseInvalidPages

cpgDatabaseSizeMax가 데이터베이스에서 허용되는 최대 페이지 수보다 클 때 반환됩니다. 현재 최대값은 2147483646(0x7ffffffe)입니다.

JET_errDatabaseInvalidPath

szFilename에 잘못된 경로가 지정되었습니다. szFilename 은 NULL이 아니어야 합니다. 기본적으로 szFilename 은 존재하는 디렉터리를 가리킵니다. JET_paramCreatePathIfNotExist 설정된 경우 경로가 만들어집니다(JetSetSystemParameter 참조).

JET_errDatabaseLocked

다른 세션이 데이터베이스를 단독으로 이미 열었으며 JET_bitDbExclusive 사용 중임을 나타냅니다.

JET_errDatabaseNotFound

데이터베이스가 이전에 연결되지 않았습니다( JetAttachDatabase 참조).

JET_errDatabaseSharingViolation

데이터베이스 파일이 이미 다른 세션에 의해 연결되었습니다.

JET_errInTransaction

트랜잭션에 있는 동안 데이터베이스를 만들려고 했습니다.

JET_errInvalidDatabase

유효한 데이터베이스 파일이 아닌 파일을 열려고 했습니다.

JET_errOneDatabasePerSession

둘 이상의 데이터베이스를 열려고 했고 JET_paramOneDatabasePerSession 설정되었습니다. 시스템 매개 변수를 참조하세요.

JET_errOutOfMemory

시스템이 리소스가 부족했습니다.

JET_errTooManyAttachedDatabases

instance당 한정된 수의 데이터베이스만 연결할 수 있습니다. 이 제한은 현재 instance당 7개의 데이터베이스입니다.

JET_wrnDatabaseAttached

데이터베이스 파일이 이 세션에서 이미 연결되어 있음을 나타내는 심각하지 않은 경고입니다.

JET_wrnFileOpenReadOnly

JET_wrnFileOpenReadOnly 파일이 읽기 전용으로 연결되었지만 JetCreateDatabase 가 JET_bitDbReadOnly 전달하지 않았음을 나타냅니다. 데이터베이스는 읽기 전용 액세스 권한으로 여전히 열립니다.

설명

szFilename에 지정된 데이터베이스가 있고 JET_bitDbOverwriteExisting 전달되지 않은 경우 API 호출이 실패합니다. JET_bitDbOverwriteExisting 전달된 경우 이전 데이터베이스 파일이 먼저 삭제됩니다.

API가 데이터베이스 파일을 만든 다음 다른 오류가 발생하면 클린 파일을 삭제합니다.

JetCreateDatabase2 는 데이터베이스를 암시적으로 엽니다. 이후에 JetOpenDatabase를 호출할 필요는 없습니다.

요구 사항

요구 사항

클라이언트

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

서버

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

머리글

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

라이브러리

ESENT.lib를 사용합니다.

DLL

ESENT.dll 필요합니다.

유니코드

JetCreateDatabase2W(유니코드) 및 JetCreateDatabase2A(ANSI)로 구현됩니다.

참고 항목

확장 가능한 스토리지 엔진 파일
JET_ERR
JET_DBID
JET_GRBIT
JET_SESID
JetAttachDatabase
JetCloseDatabase
JetCreateDatabase
JetOpenDatabase
JetSetSystemParameter
시스템 매개 변수