2012-04-18 3 views
2

"루트"가 아닌 전화에서 데이터베이스로 데이터베이스를 복사해야하므로 다른 방법 : copy/data/data /와 같은 방법을 사용합니다. ./databases/test.db 처음에/sdcard. 그리고 내 PC 또는 내 친구의 PC에서 adb 셸 sqlite3 명령을 사용하여 몇 가지 질문이 있습니다 : 1) 때로는 성공적으로 열 수 2) 때로는 보여줍니다 "파일 암호화 또는 데이터베이스가 아닙니다"3) 때때로, 그것은데이터베이스 디스크 이미지가 잘못되었거나 파일이 암호화되었거나 데이터베이스가 아닙니다

참고 "데이터베이스 디스크 이미지 형식이 잘못되었습니다"보여줍니다. sqlite3를 버전이 다른

파일 "의 근본 원인 암호화 여부입니다 데이터베이스 "는 버전 문제입니다. 맞습니까?

"데이터베이스 디스크 이미지의 형식이 잘못되었습니다"라는 근본 원인은 무엇입니까? 나는 인터넷에 관한 정보를 검색하지만, 아직 고칠 수는 없다.

감사합니다.

편집 1 : 테스트 용 전화는 HTC HD 편집 2 :이 스레드 : http://groups.google.com/group/android-developers/browse_thread/thread/2b8a8fa9b955eecd/0615c6111d93ea02?lnk=raot 메시지가 있습니다. 이렇게하는 것이 좋습니다. 은 바이너리 데이터베이스 파일이 Android 버전에서 호환되고 모든 맞춤 ROM에서 호환되지 않는다고 보장하지 않습니다.

"database disk image is malformed"의 근본 원인은 Sqlite3 버전입니다. 그러나 sdcard에 데이터베이스를 백업하는 것이 가장 좋은 방법입니까? 다른 방법이 있습니까?

편집 3 : link 1 link 2 link 3

+0

연결된 스레드에서 데이터베이스 파일에 대한 많은 게시물이 제대로 복사되지 않습니다. –

답변

0

내 본능은 데이터베이스 파일을 전송하는 동안 어떻게 든 손상된 있다고 생각하는 것입니다. 내 경험에 비추어 볼 때, 데이터베이스 파일이 손상된 경우에는 끝났습니다.

당신은 데이터베이스 파일이 소스와 following pragma와 대상 모두에서 손상되지 않았는지 확인해야합니다

PRAGMA integrity_check; 

을 모두가 좋은 경우, 결과 세트는 값 ok 단일 열 기록이다.

  • sqlite3를도
  • sqlite3를 것 몇 가지 오류를 데이터베이스 파일을 열고 반환하지 않습니다 : 다음과 같은 세 가지 시나리오 중 하나가, 데이터베이스가 꽤 많이 손상되어 사용할 수 없게됩니다에 대한

    은 그냥 명확하게하기
  • 데이터베이스 파일을 엽니 다 sqlite3를하지만, pragma integrity_check는 반환하지 않습니다 데이터베이스 파일을 열 수 있지만, 당신은 몇 가지 문을 실행할 때 일부 오류를 반환 ok

원본과 대상 모두 sqlite 3.x.y.z를 사용하고 있으므로 파일 형식이 일 경우이 문제가되지 않아야합니다 (몇 가지 예외가 있지만 그 중 하나가 귀하의 고통의 근원임을 의심합니다).

다른 작업은 파일이 원본과 대상에서 동일하다는 것을 확인하는 것입니다. 해시 (md5, sha1 등)를 비교할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. – Judy

관련 문제