안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
스스로 찾아보고자 토요일 아침 11시부터 검색했는데 지금 새벽 두시가 넘었네요...
도무지 안되서 질문 드립니다...
주기적으로 db가 업데이트 되야 하는 어플을 만들어 보려고 합니다.
웹에서 db파일을 단말기의 특정 폴더에 다운로드 한 뒤 쿼리를 날려 값을 이용할려구요...
웹에서 db파일 받을때 폴더는 지정해 줄 수 있는거 같더라구요.
궁금한 것이...
SQLiteDatabase db = openOrCreateDatabase("data2.db", Context.MODE_PRIVATE, null);
이렇게 하면 data2.db 파일이 단말기의 /data/data/패키지이름/data2.db 로 저장이 되는거죠?
꼭 여기 저장 해야지 읽을 수 있는건가요? 다른데 놔두면 못쓰는건지...
위와 같이 하고 테이블 생성, 필드 만들고 값 추가해준 뒤 쿼리 날려주니까 값 가져와 집니다만...
하고싶은건 안드로이드가 아닌 외부( 파이어폭스의 SQLite manager 같은)에서 만든 db파일을 어플에서 불러와 쿼리를 날리려고 합니다.
이클립스 DDMS의 File Explorer에서 sdcard폴더에 외부 툴에서 만든 db파일을 넣었는데요..
SQLiteDatabase db = openOrCreateDatabase("/sdcard/data.db", Context.MODE_PRIVATE, null);
Cursor dbc = db.rawQuery(QUERY문, null);
이런식으로 불러와 쿼리 날려서 커서 객체로 데이터들을 좀 사용하고 싶은데...
안되더라구요... 단말기마다 sdcard 경로명이 다를수도 있다는 글을봐서
android.os.Environment.getExternalStorageDirectory()+"data.db" 로 해도 안되고...
아 도무지 모르겠습니다. 하루종일 눈물이 찍찍 나려고 하고 커피 뿐인 위장과 담배 연기로 가득찬 폐만 남았네요...
또, assets 폴더에 db파일을 1mb 이하로 쪼개서 합치던데, 이건 어플 배포시에 미리 db파일을 포함 시키려고 하는거죠?
1mb가 넘으면 안되니 쪼갠 다음 어플 실행시에 합쳐서 /data/data/패키지/db이름.db 로 만들어 사용한다... 는 건가요?
이렇게 하면 assets폴더에 쪼개 놓은 db파일들이 있고, 합친 파일도 있을텐데.. 합친뒤에 assets폴더의 쪼갠 파일들은 삭제 하나요?
아아 머리가 멍청한건지...12시간 이상을 검색 해도 감이 안오네요...
스스로 찾아보고자 토요일 아침 11시부터 검색했는데 지금 새벽 두시가 넘었네요...
도무지 안되서 질문 드립니다...
주기적으로 db가 업데이트 되야 하는 어플을 만들어 보려고 합니다.
웹에서 db파일을 단말기의 특정 폴더에 다운로드 한 뒤 쿼리를 날려 값을 이용할려구요...
웹에서 db파일 받을때 폴더는 지정해 줄 수 있는거 같더라구요.
궁금한 것이...
SQLiteDatabase db = openOrCreateDatabase("data2.db", Context.MODE_PRIVATE, null);
이렇게 하면 data2.db 파일이 단말기의 /data/data/패키지이름/data2.db 로 저장이 되는거죠?
꼭 여기 저장 해야지 읽을 수 있는건가요? 다른데 놔두면 못쓰는건지...
위와 같이 하고 테이블 생성, 필드 만들고 값 추가해준 뒤 쿼리 날려주니까 값 가져와 집니다만...
하고싶은건 안드로이드가 아닌 외부( 파이어폭스의 SQLite manager 같은)에서 만든 db파일을 어플에서 불러와 쿼리를 날리려고 합니다.
이클립스 DDMS의 File Explorer에서 sdcard폴더에 외부 툴에서 만든 db파일을 넣었는데요..
SQLiteDatabase db = openOrCreateDatabase("/sdcard/data.db", Context.MODE_PRIVATE, null);
Cursor dbc = db.rawQuery(QUERY문, null);
이런식으로 불러와 쿼리 날려서 커서 객체로 데이터들을 좀 사용하고 싶은데...
안되더라구요... 단말기마다 sdcard 경로명이 다를수도 있다는 글을봐서
android.os.Environment.getExternalStorageDirectory()+"data.db" 로 해도 안되고...
아 도무지 모르겠습니다. 하루종일 눈물이 찍찍 나려고 하고 커피 뿐인 위장과 담배 연기로 가득찬 폐만 남았네요...
또, assets 폴더에 db파일을 1mb 이하로 쪼개서 합치던데, 이건 어플 배포시에 미리 db파일을 포함 시키려고 하는거죠?
1mb가 넘으면 안되니 쪼갠 다음 어플 실행시에 합쳐서 /data/data/패키지/db이름.db 로 만들어 사용한다... 는 건가요?
이렇게 하면 assets폴더에 쪼개 놓은 db파일들이 있고, 합친 파일도 있을텐데.. 합친뒤에 assets폴더의 쪼갠 파일들은 삭제 하나요?
아아 머리가 멍청한건지...12시간 이상을 검색 해도 감이 안오네요...




2. asset에 쪼개진 DB파일을 포함시키는 것은 말씀하신대로 미리 DB파일을 포함시키려고 하는 것입니다.
하지만 assets 에 포함되어 있는 파일은 어떠한 종류의 파일도 삭제 불가입니다.