2009-09-17 6 views
20

C++에서 sqlite를 통해 데이터베이스를 만들었습니다.디스크에 메모리 내 데이터베이스 저장

매우 빠른 동작을 위해 db가 메모리에 작성되었습니다 (파일 이름의 ": memory :"매개 변수 사용).

sqlite3* mem_database; 
if((SQLITE_OK == sqlite3_open(":memory:", &mem_database)){ 
    // The db has been correctly created and 
    // I can do some stuff with it. 
} 
sqlite3_close(mem_database); 

내 문제는 다음과 같습니다 : 어떻게 디스크에 메모리 데이터베이스를 작성할 수

데이터베이스는 다음 줄에 의해 생성된다? (물론 c/C++를 통해).

ATTACH 및 DETACH sqlite 명령에 대해 읽었지만 c/C++ 코드가 아닌 sqlite 대화 형 셸에서만 작동하도록 할 수 있습니다.

Greets. 이 예제 밖으로

답변

19

확인 : 테이블에 아무것도하기 전에 Loading and Saving In-Memory Databases

+0

좋아요! 이것은 완벽하게 작동했습니다 : D – Giancarlo

+0

동일한 목적으로 C# 문서를 찾고 있습니다. 알고 계시다면 공유하십시오. –

+0

@Mubashar : 저는 C#에 익숙하지 않습니다. C#의 예제를 쉽게 변환 할 수 있다고 생각합니다. 'sqlite3_backup_X' 함수가 그 일을합니다. –

2

를 사용하여 트랜잭션 문. 이렇게하면 빠른 처리와 롤백이 보장됩니다. 이렇게하면 데이터베이스를 메모리에 직접 구현할 필요가 없습니다.

관련 문제