JetCreateDatabase 함수

적용 대상: Windows | Windows Server

JetCreateDatabase 함수

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

    JET_ERR JET_API JetCreateDatabase(
      __in          JET_SESID sesid,
      __in          JET_PCSTR szFilename,
      __in_opt      JET_PCSTR szConnect,
      __out         JET_DBID* pdbid,
      __in          JET_GRBIT grbit
    );

매개 변수

sesid

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

szFilename

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

szConnect

다음에 사용하도록 예약됩니다. NULL로 설정됨.

pdbid

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

grbit

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

의미

JET_bitDbOverwriteExisting

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

JET_bitDbRecoveryOff

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

JET_bitDbShadowingOff

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

Return Value

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

반환 코드

설명

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

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

JET_wrnDatabaseAttached

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

JET_wrnFileOpenReadOnly

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

설명

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

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

JetCreateDatabase 는 암시적으로 데이터베이스를 엽니다. 이후에 JetOpenDatabase를 호출해야 하는 것은 아닙니다.

요구 사항

요구 사항

클라이언트

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

서버

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

머리글

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

라이브러리

ESENT.lib를 사용합니다.

DLL

ESENT.dll 필요합니다.

유니코드

JetCreateDatabaseW(유니코드) 및 JetCreateDatabaseA(ANSI)로 구현됩니다.

참고 항목

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