파일 F가 사용 가능한 SQLite3 데이터베이스인지 확인하는 간단한 C 프로그램을 작성합니다.파일이 SQLite3 DB인지 확인하는 방법이 있습니까?
나는 파일 test.db
에 횡설수설을 기록했지만, sqlite3_open("test.db", &db)
는 나도 sqlite3_status()
또는 sqlite3_db_status()
내가하고 싶은 일을 생각하지만, 문서 뭔가 다른 상태
0을 반환했습니다.
파일 F가 사용 가능한 SQLite3 데이터베이스인지 확인하는 간단한 C 프로그램을 작성합니다.파일이 SQLite3 DB인지 확인하는 방법이 있습니까?
나는 파일 test.db
에 횡설수설을 기록했지만, sqlite3_open("test.db", &db)
는 나도 sqlite3_status()
또는 sqlite3_db_status()
내가하고 싶은 일을 생각하지만, 문서 뭔가 다른 상태
0을 반환했습니다.
체크 아웃 this thread.
sqlite3_open
은 파일이 데이터베이스가 아니어도 SQLITE_OK를 반환합니다. 그러나 문을 실행하려고하면 SQLITE_NOTADB가 표시됩니다. 헤더를 읽는 대신 데이터베이스를 연 후 SELECT * FROM sqlite_master;
과 같은 작업을 수행하고 SQLITE_NOTADB가 반환되는지 확인할 수 있습니다. 한 단계 더 나아가서 리턴 된 데이터를 사용하여 모든 테이블이 있는지 확인할 수 있습니다.
the file must begin with a fixed header. 유효한 파일을 인식하려면 괜찮습니다.
그래서'sqlite3_db_isvalid()'와 같은 것이 없습니까? –
귀하의 요구 사항은 무엇입니까? 헤더를 충분히 확인하고 있습니까? 또는 데이터베이스에 결함이 있는지 분석하고 싶습니까? –
F가 실제 SQLite DB인지 또는 사용할 수없는 파일인지 (예 : 텍스트 파일, 임의 파일 등)인지 알고 싶습니다. –
설명서의 어느 부분에서 무엇이 다른 의미입니까? –