e.motion
Маленькие хитрости

Как достать данные из файла AddressBook.sqlitedb в iPhone

11 января 2012 by · 18 комментариев 

Недавно обновил iOS до версии 5.0.1. Обновлял методом полной перезаливки в режиме DFU, после чего попробовал вернуть файл AddressBook.sqlitedb на место, чтобы восстановить адресную книгу, но ничего не получилось, айфон файл не съел, а, напротив, обнулил его. Видимо, начиная с версии 4.3-с-чем-то формат изменился, и сам айфон обновлять его не желает. Контакты, тем не менее, были нужны. Небольшое гуглирование показало, каким образом можно достать данные.

1. Открываем базу данных AddressBook

Открываем Файрфокс и ставим расширение SQLite Manager, Перезапускаемся. Заходим в Web Developer->SQLite Manager. В окне SQLite Manager кликаем значок «Открыть» и выбираем AddressBook.sqlitedb.

Как вариант, открыть файл в формате SQLite версии 3 можно программой SQLite Expert Professional — ее можно купить или найти в торрентах.

2. Открываем закладку «Выполнить команду SQL» и заводим следующий запрос

select ABPerson.prefix, ABPerson.first,ABPerson.last, ABMultiValue.value from ABPerson,ABMultiValue where ABMultiValue.record_id=ABPerson.ROWID

если нужны более подробные данные, такие как дни рождения, заметки и прочее, запрос изменяется до следующего:

select ABPerson.prefix,ABPerson.suffix, ABPerson.first,ABPerson.middle,ABPerson.last, ABMultiValue.value, ABPerson.note, ABPerson.nickname, ABPerson.organization, ABPerson.department, ABPerson.jobtitle, ABPerson.birthday from ABPerson,ABMultiValue where ABMultiValue.record_id=ABPerson.ROWID

Готово; вы получаете список своих контактов.

3. Жмите кнопку Actions и выберите Save Result (CSV) to file (Сохранить в файл CSV).

Дальше действуйте по вашему усмотрению.

  • WordPress

Comments

18 комментариев to “Как достать данные из файла AddressBook.sqlitedb в iPhone”
  1. Богдан:

    спасибо, помогло...

  2. Руслан:

    Пытаюсь проделать вышеуказанное на Mac os x 10.6.8

    При вводе запроса : select ABPerson.prefix, ABPerson.first,ABPerson.last, ABMultiValue.value from ABPerson,ABMultiValue where ABMultiValue.record_id=ABPerson.ROWID

    выскакивает окно с восклицательным знаком в желтом треугольнике с надписью :

    SQLite Manager Alert

    SQLiteManager: Likely SQL syntax error: select

    APBerson.prefix, ABPerson.first,ABPerson.last,

    APBMultiValue.value from APBerson,APBMultiValue where

    APBMultiValue.record_id=ABPerson.ROWID

    [ no such table: ABPerson ]

    Exception Namee: NS_ERROR_FAILURE

    Exception Message: Componentreturned failure code:

    0×8004005 (NS_ERROR_FAILURE)

    [mozlSorageConnectione.createStatement]

  3. Ну, если [ no such table: ABPerson ], значит, в вашей версии этого файла такой таблицы нет. Файл точно не битый и не пустой? Вы видите, какие в нем есть таблицы?

  4. Руслан:

    я вижу имена,но без телефонов.тарабарщина

  5. Руслан:

    по крайней мере в програмке Base

  6. Руслан:

    Cправился.Большое спасибо за помощь!

  7. Serg:

    Спасибо, статья отличная!

    Работает в се хорошо.

    Есть вопрос: файл 31bb7ba8914766d4ba40d6dfb6113c8b614be442=AddressBook.sqlitedb присутствует, в нем есть и номера, есть и сами контакты, а вот SQLite Manager не видит ничего.

  8. Ruslan:

    Spasibo! Pomoglo! teper' budu iskat' kak csv zakinut na iPhone 😉

  9. Сергей:

    Спасибо помогло, только есть одна проблема когда сохранил базу данных открываю в excele и кирилицу не распознает каракулями все имена, с этим как то можно побороться?

  10. Сергей:

    И отдельный вопрос как быть с Смс, можно ли их залить в новую прошивку а то я пытался тоже не получается...

    Заранее спасибо

  11. Sergey:

    Spasibo

  12. Gurum:

    Спасибо огромное !!! все получилось думал что уже все пропало =) Большое Человеческое СПАСИБО!!!!

  13. Stas_SPb:

    Добрый день, помогите, пожалуйста!

    Ввожу запрос в FF:

    select ABPerson.prefix, ABPerson.first,ABPerson.last, ABMultiValue.value from ABPerson,ABMultiValue where ABMultiValue.record_id=ABPerson.ROWID

    Получаю ответ:

    not an error

    Данных не видно. Ни телефонов, ни имен-пусто. Если открывать фаром AddressBook.sqlitedb — там через поиск можно найти номера телефонов, то есть данные должны быть.

    Как быть?

  14. Eduard:

    СПАСИБО!!! Слава Богу, что есть умные люди, да еще и готовые помочь другим!

    Поклон до земли.

  15. DSL:

    «Руслан:

    17/02/2012 в 18:52

    Cправился.Большое спасибо за помощь!»

    Ну ты тут напиши, что сделал????

  16. DSL:

    Пользую SQLite 3 версии, ошибка: Internal Error no such table: ABPerson. Подскажите что делать?

  17. Miami:

    to Ruslan:

    Та же проблема

    no such table: ABPerson

    Пробовал SQLite 3.2 но все равно пишет no such table: ABPerson

    Расскажи как решил.

  18. ejisko:

    Stas_SPb:

    22/11/2012 в 19:31

    Добрый день, помогите, пожалуйста!

    Ввожу запрос в FF:

    select ABPerson.prefix, ABPerson.first,ABPerson.last, ABMultiValue.value from ABPerson,ABMultiValue where ABMultiValue.record_id=ABPerson.ROWID

    Получаю ответ:

    not an error

    Данных не видно. Ни телефонов, ни имен-пусто. Если открывать фаром AddressBook.sqlitedb — там через поиск можно найти номера телефонов, то есть данные должны быть.

    Как быть?

    Тажке праблема помогите пожалуйста !!! пишыте в личку

Speak Your Mind

Tell us what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!

e.motion