데이터베이스로 작업

데이터베이스 작업을 위한 기능은 널리 사용되고 사용이 간편한 SQLite 엔진을 적용합니다. 이 엔진의 편리한 기능은 전체 데이터베이스가 사용자 PC 하드 디스크의 단일 파일에 있다는 것입니다.

이 기능을 사용하면 테이블을 편리하게 생성하고, 여기에 데이터를 추가하고 수정 및 샘플링을 단순 SQL 요청을 사용하여 수행할 수 있습니다:

  • 모든 형식에서 거래 내역 및 시세 수신,
  • 최적화 및 테스트 결과 저장,
  • 다른 분석 패키지와 데이터 준비 및 교환,
  • MQL5 애플리케이션 설정 및 상태를 저장.

데이터베이스 작업 기능을 사용하면 가장 반복적인 대용량 데이터 배열 처리 작업을 SQL 요청으로 대체할 수 있으므로 복잡한 루프 및 비교를 프로그래밍 하는 대신 DatabaseExecute/DatabasePrepare 호출을 사용할 수 있습니다. DatabaseReadBind 기능을 사용하여 조회 결과를 미리 작성된 구조로 손쉽게 얻을 수 있습니다. 이 기능을 통해 단일 통화 내에서 모든 기록 필드를 한 번에 읽을 수 있습니다.

읽기, 쓰기 및 수정을 가속화하기 위해 DATABASE_OPEN_MEMORY 플래그를 사용하여 RAM에서 데이터베이스를 열거나 생성할 수 있으며, 이러한 데이터베이스는 특정 애플리케이션에서만 사용할 수 있고 공유되지 않습니다. 하드 디스크에 위치한 데이터베이스로 작업할 때는 DatabaseTransactionBegin/DatabaseTransactionCommit/DatabaseTransactionRollback을 사용하여 대량 데이터 삽입/변경 사항을 트랜잭션으로 묶어야 합니다. 이는 프로세스를 수백 번 가속화됩니다.

이 기능을 사용하려면 SQLite: MQL5의 SQL 데이터베이스 네이티브 처리 문서를 참조하십시오.

기능

동작

DatabaseOpen

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

DatabaseClose

데이터베이스를 닫기

DatabaseImport

파일에서 테이블로 데이터 가져오기

DatabaseExport

테이블 또는 SQL 요청 실행 결과를 CSV 파일로 내보내기

DatabasePrint

SQL 요청 실행 결과를 엑스퍼트 저널에 인쇄

DatabaseTableExists

데이터베이스에 테이블이 있는지 확인

DatabaseExecute

지정된 데이터베이스에 대한 요청을 실행

DatabasePrepare

DatabaseRead()를 사용하여 실행할 수 있는 요청 핸들을 생성

DatabaseReset

DatabasePrepare()를 호출한 후와 같이 요청을 재설정

DatabaseBind

요청에 매개변수 값을 설정

DatabaseBindArray

배열을 매개변수 값을 설정

DatabaseRead

요청 결과로 다음 항목으로 이동

DatabaseReadBind

다음 기록으로 이동하여 기록에서 구조물로 데이터를 읽기

DatabaseFinalize

DatabasePrepare()에서 생성된 요청을 제거

DatabaseTransactionBegin

트랜잭션 실행 시작

DatabaseTransactionCommit

트랜잭션 실행 완료

DatabaseTransactionRollback

트랜잭션을 롤백

DatabaseColumnsCount

요청의 필드 수를 가져오기

DatabaseColumnName

인덱스별로 필드 이름을 가져오기

DatabaseColumnType

인덱스별 필드 유형을 가져오기

DatabaseColumnSize

필드 크기(바이트)를 가져오기

DatabaseColumnText

현재 기록에서 문자열로 필드 값을 가져오기

DatabaseColumnInteger

현재 기록에서 int 유형 값을 가져오기

DatabaseColumnLong

현재 기록에서 long 유형 값을 가져오기

DatabaseColumnDouble

현재 기록에서 double 유형 값을 가져오기

DatabaseColumnBlob

현재 기록에서 배열로 필드 값을 가져오기