2012-11-02 2 views
3

파일 F가 사용 가능한 SQLite3 데이터베이스인지 확인하는 간단한 C 프로그램을 작성합니다.파일이 SQLite3 DB인지 확인하는 방법이 있습니까?

나는 파일 test.db에 횡설수설을 기록했지만, sqlite3_open("test.db", &db)는 나도 sqlite3_status() 또는 sqlite3_db_status() 내가하고 싶은 일을 생각하지만, 문서 뭔가 다른 상태

0을 반환했습니다.

+1

귀하의 요구 사항은 무엇입니까? 헤더를 충분히 확인하고 있습니까? 또는 데이터베이스에 결함이 있는지 분석하고 싶습니까? –

+0

F가 실제 SQLite DB인지 또는 사용할 수없는 파일인지 (예 : 텍스트 파일, 임의 파일 등)인지 알고 싶습니다. –

+0

설명서의 어느 부분에서 무엇이 다른 의미입니까? –

답변

4

체크 아웃 this thread.

sqlite3_open은 파일이 데이터베이스가 아니어도 SQLITE_OK를 반환합니다. 그러나 문을 실행하려고하면 SQLITE_NOTADB가 표시됩니다. 헤더를 읽는 대신 데이터베이스를 연 후 SELECT * FROM sqlite_master;과 같은 작업을 수행하고 SQLITE_NOTADB가 반환되는지 확인할 수 있습니다. 한 단계 더 나아가서 리턴 된 데이터를 사용하여 모든 테이블이 있는지 확인할 수 있습니다.

관련 문제