2012-04-06 4 views
1

내 응용 프로그램에는 기존 SQLite 데이터베이스가 연결되어 있습니다. 시작시 전화로 복사 된 다음 사용됩니다. 이 데이터베이스가 이미 복사되었는지 확인하는 방법을 알고 있지만 전화 데이터베이스가 APK에 저장된 것과 동일한 지 확인하고 싶습니다. 그들을 비교할 방법이 있습니까? 나는 그것을 프로그래밍 방식으로하고 싶다.안드로이드에서 SQLite 데이터베이스 비교

원본 데이터베이스는 assets 폴더에 저장됩니다.

+0

시도 안돼요의 기록을 비교하는 경우 파일 크기를 바이트 단위로 다시 표시 하시겠습니까? – idiottiger

+0

그래, 좋은 생각이야. 이 파일의 크기는 어떻게 얻을 수 있습니까? 원본은 내 APK의'assets' 폴더에 있고, 복사는'/ data/data/my.package/databases /'에 있습니다. – Roman

+0

assert db :'context.getAssets(). open ("assert_db"). available();'그리고'new File ("/ data/..."). 길이();'실제로 db이다. – idiottiger

답변

1

루팅 된 전화가있는 경우 자세히 알아볼 수 있습니다. 그러나 당신의 전화가 뿌리가 없다면 당신은 그것을 볼 수 없을 것입니다.

귀하의 휴대 전화에 응용 프로그램을 복사 한 경우 또 다른 것은 확실히 작동합니다.

그래서 결론 당신이 뿌리 전화가있는 경우 다음의 크기 나가 설치되어있는 시간을 비교하려고 가능하면 확인하고 비교 할 수있을 것입니다.

1

데이터베이스를 APK에 연결하고 이전 데이터베이스를 복사했음을 정확히 나타내는 휴대 전화에 성공적으로 복사 한 경우 비교할 필요가 없다고 생각합니다. 비교하고 싶다면 표. 당신이 당신의 데이터베이스가 이미 모든 표

목록에

업데이트

값 확인 후 복사 copied.Then 한 번 진정한 공유 preferences.Save에서 하나 개의 플래그를 사용하는 것을 기억하고 싶은 경우

두 번째

select name from sqlite_master where type = 'table' 

모두 데이터베이스는 같은 테이블이 다음이 해당 테이블

+0

원본 데이터베이스의 내용은 변경 될 예정이지만 이전의 데이터베이스 내용은 변경되었으므로 기존의 데이터베이스 내용이 바뀌 었으므로 전화기의 기존 데이터베이스 내용이 바뀌지는 않습니다. 그래서 나는 그들을 비교할 방법을 찾고있다. – Roman

+0

두 테이블 모두 동일한 숫자를 가진 경우 총 테이블을 비교할 수 있습니다. 테이블을 선택한 다음 비교할 레코드를 비교합니다. – Sameer

+0

편집 내역보기 @Roman – Sameer

관련 문제