DatabaseOpen

지정된 파일에 데이터베이스를 열거나 생성.

int  DatabaseOpen(
   string  filename,      // 파일 이름
   uint    flags          // 플래그의 조합
   );

매개변수

filename

[in]  "MQL5\Files" 폴더에 상대적인 파일 이름.

flags

[in] ENUM_DATABASE_OPEN_FLAGS 열거의 플래그 조합.

반환 값

성공적으로 실행되면 함수는 데이터베이스 핸들을 반환하고 이 핸들을 데이터베이스에 액세스하는 데 사용합니다. 그렇지 않으면 INVALID_HANDLE을 반환합니다. 오류 코드를 가져오려면 GetLastError()를 사용해야 하며, 가능한 응답은 다음과 같습니다:

  • ERR_INTERNAL_ERROR (4001)                       – 심각한 런타임 오류;
  • ERR_WRONG_INTERNAL_PARAMETER (4002)  - "MQL5\Files" 폴더에 액세스 하는 도중 내부 오류;
  • ERR_INVALID_PARAMETER (4003)                  – 데이터베이스 파일의 경로에 빈 문자열이 포함되어 있거나 호환되지 않는 플래그 조합이 설정;
  • ERR_NOT_ENOUGH_MEMORY (4004)              - 충분하지 않은 메모리;
  • ERR_WRONG_FILENAME (5002)                     - 잘못된 데이터베이스 파일 이름;
  • ERR_TOO_LONG_FILENAME (5003)                 - 데이터베이스 파일의 절대 경로가 최대 길이를 초과;
  • ERR_DATABASE_TOO_MANY_OBJECTS (5122) - 허용되는 최대 데이터베이스 개체 수를 초과;
  • ERR_DATABASE_CONNECT (5123)                  - 데이터베이스 연결 오류;
  • ERR_DATABASE_MISUSE (5621)                      - 잘못된 SQLite 라이브러리 사용.

참고

파일명 매개변수에 NULL 또는 빈 문자열 ""이 있으면 디스크에 임시 파일이 생성됩니다. 데이터베이스 연결을 닫은 후 자동으로 삭제됩니다.

파일명 매개변수가 ":memory:"인 경우 데이터베이스는 메모리에 생성되고 연결이 닫히면 자동으로 삭제됩니다.

플래그 매개변수에 DATABASE_OPEN_READONLY 또는 DATABASE_OPEN_READWRITE 플래그가 없는 경우 DATABASE_OPEN_READWRITE 플래그가 사용됩니다.

파일 확장명을 지정하지 않으면 ".sqlite"가 사용됩니다.

ENUM_DATABASE_OPEN_FLAGS

ID

설명

DATABASE_OPEN_READONLY

읽기 전용

DATABASE_OPEN_READWRITE

읽기 및 쓰기 위한 열기

DATABASE_OPEN_CREATE

필요한 경우 디스크에 파일 생성

DATABASE_OPEN_MEMORY

RAM에 데이터베이스 생성

DATABASE_OPEN_COMMON

파일은 모든 터미널 공통 폴더에 있습니다

추가 참조

DatabaseClose