
Урок 34. Хранение данных. SQLite
ID = 42
Почему индексация начинается не с 1 (или 0) а сразу с 42?


Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: ID = 42
Потому что для поля ID указан автоинкремент (авто прибавление).doter.ua писал(а):Почему индексация начинается не с 1 (или 0) а сразу с 42?
Поэтому, даже после очистки таблицы, счетчик по-прежнему прибавляется.
Если хотите, чтобы начинался с 1, удалите и создайте таблицу заново.
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Урок 34. Хранение данных. SQLite
Это лог с эмулятора. На реальном устройстве пока нет возможности проверитьFoenix писал(а):весь лог приведи, это у тебя лишь последствия ошибки
11-25 21:59:04.889: E/SQLiteLog(1195): (14) os_unix.c(2) open(/sdcard/data/myDB) -
11-25 21:59:05.108: E/SQLiteDatabase(1195): Failed to open database '/sdcard/data/myDB'.
11-25 21:59:05.108: E/SQLiteDatabase(1195): android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:709)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at com.project.test.MainActivity$DBHelper.<init>(MainActivity.java:385)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at com.project.test.MainActivity.onCreate(MainActivity.java:226)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.app.Activity.performCreate(Activity.java:5133)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.os.Handler.dispatchMessage(Handler.java:99)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.os.Looper.loop(Looper.java:137)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.app.ActivityThread.main(ActivityThread.java:5103)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at java.lang.reflect.Method.invokeNative(Native Method)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at java.lang.reflect.Method.invoke(Method.java:525)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-25 21:59:05.108: E/SQLiteDatabase(1195): at dalvik.system.NativeStart.main(Native Method)
11-25 21:59:05.438: E/AndroidRuntime(1195): FATAL EXCEPTION: main
11-25 21:59:05.438: E/AndroidRuntime(1195): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.project.test/com.project.test.MainActivity}: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.os.Handler.dispatchMessage(Handler.java:99)
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.os.Looper.loop(Looper.java:137)
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.app.ActivityThread.main(ActivityThread.java:5103)
11-25 21:59:05.438: E/AndroidRuntime(1195): at java.lang.reflect.Method.invokeNative(Native Method)
11-25 21:59:05.438: E/AndroidRuntime(1195): at java.lang.reflect.Method.invoke(Method.java:525)
11-25 21:59:05.438: E/AndroidRuntime(1195): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
11-25 21:59:05.438: E/AndroidRuntime(1195): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-25 21:59:05.438: E/AndroidRuntime(1195): at dalvik.system.NativeStart.main(Native Method)
11-25 21:59:05.438: E/AndroidRuntime(1195): Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209)
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:709)
11-25 21:59:05.438: E/AndroidRuntime(1195): at com.project.test.MainActivity$DBHelper.<init>(MainActivity.java:385)
11-25 21:59:05.438: E/AndroidRuntime(1195): at com.project.test.MainActivity.onCreate(MainActivity.java:226)
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.app.Activity.performCreate(Activity.java:5133)
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
11-25 21:59:05.438: E/AndroidRuntime(1195): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
11-25 21:59:05.438: E/AndroidRuntime(1195): ... 11 more
Re: Урок 34. Хранение данных. SQLite
Failed to open database '/sdcard/data/myDB'Digetix писал(а):Это лог с эмулятора. На реальном устройстве пока нет возможности проверитьFoenix писал(а):весь лог приведи, это у тебя лишь последствия ошибки11-25 21:59:04.889: E/SQLiteLog(1195): (14) os_unix.c(2) open(/sdcard/data/myDB) -
11-25 21:59:05.108: E/SQLiteDatabase(1195): Failed to open database '/sdcard/data/myDB'.
11-25 21:59:05.108: E/SQLiteDatabase(1195): android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
11-25 21:59:05.108: E/SQLiteDatabase(1195): at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
Т.е. не находит базу данных.
Вам знакома команда:
String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
а в коде пишите путь руками, а он на разный устройствах android - разный!
вместо этого
'/sdcard/data/myDB'
должно быть
'/mnt/sdcard/data/myDB' ---- но этот путь нужно получать из строки extStorageDirectory (см. выше)
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Урок 34. Хранение данных. SQLite
Нет, не знакома. Как ей пользоваться в моем случае?trew писал(а):Вам знакома команда:
Уже нашёл, буду пробовать
Re: Урок 34. Хранение данных. SQLite
Это строка была взята из вашего кодаDigetix писал(а):Нет, не знакома. Как ей пользоваться в моем случае?trew писал(а):Вам знакома команда:
Уже нашёл, буду пробовать
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Урок 34. Хранение данных. SQLite
Failed to open database '/sdcard/data/myDB'.Digetix писал(а):Нет, не знакома. Как ей пользоваться в моем случае?trew писал(а):Вам знакома команда:
Уже нашёл, буду пробовать
Суть в том, что сам путь неправильный. Данные находятся в папке data/data/имя_твоего_приложения/databases
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 34. Хранение данных. SQLite
Если посмотреть предыдущее сообщение пользователяFoenix писал(а):Failed to open database '/sdcard/data/myDB'.Digetix писал(а):Нет, не знакома. Как ей пользоваться в моем случае?trew писал(а):Вам знакома команда:
Уже нашёл, буду пробовать
Суть в том, что сам путь неправильный. Данные находятся в папке data/data/имя_твоего_приложения/databases
viewtopic.php?f=3&t=124&start=400
видно, что он свою базу разместил на SD.
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Урок 34. Хранение данных. SQLite
trew писал(а):но этот путь нужно получать из строки extStorageDirectory
Вот я у вас спрашивал как правильно мне указать место куда сохранить базу на карту памятиtrew писал(а):Это строка была взята из вашего кода
И ещё возник вопрос: как быть с устройствами, у которых есть карта памяти и устройствами, у которых есть внутренняя память?
Re: Урок 34. Хранение данных. SQLite
http://developer.android.com/guide/topi ... esExternal
вот тут подробно описано как аутентично работать с карточкой
вот тут подробно описано как аутентично работать с карточкой
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 34. Хранение данных. SQLite
Ничего толкового для себя там не нашёл.
Re: Урок 34. Хранение данных. SQLite
Можно взять из урока 75 фрагмент кода для sd-карты.Digetix писал(а):trew писал(а):но этот путь нужно получать из строки extStorageDirectoryВот я у вас спрашивал как правильно мне указать место куда сохранить базу на карту памятиtrew писал(а):Это строка была взята из вашего кода
И ещё возник вопрос: как быть с устройствами, у которых есть карта памяти и устройствами, у которых есть внутренняя память?
В этой теме, пользователь Foenixкак быть с устройствами, у которых есть карта памяти и устройствами, у которых есть внутренняя память?
написала: "Если есть карта, то этот путь ведет к ней, если нету - то на локальный."
(я не проверял)
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Урок 34. Хранение данных. SQLite
ну что поделаешь? значит тебя уже не спастиDigetix писал(а):Ничего толкового для себя там не нашёл.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 34. Хранение данных. SQLite
Ну а вы можете привести цитату из статьи, которая пригодиться в моем случае?Foenix писал(а):ну что поделаешь? значит тебя уже не спасти
Re: Урок 34. Хранение данных. SQLite
английский знаешь?
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 34. Хранение данных. SQLite
table.addView(row); - добавляем в таблицу новую строку. Но это добавление в конец таблицы, а как добавить после или перед нужно строкой?
Re: Урок 34. Хранение данных. SQLite
откуда данная цитата? Что значит добавление в конец таблицы? Сортировать нужно в запросе. При таких вопросах сразу видно, что вам нужно начинать с самого начала - теория баз данных.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 34. Хранение данных. SQLite
Возник вопрос. А можно как то скрестить SQLiteDatabase.query и команду Analyze, что бы понять, где запрос тормозит?
Как лучше всего производить оптимизацию запросов, смотреть, что именно тормозит в нём (у меня например поиск по таблице, которая связана со второй таблицей через JOIN, а потом ещё и по двум столбцам сортируется), строить индексы?
Как лучше всего производить оптимизацию запросов, смотреть, что именно тормозит в нём (у меня например поиск по таблице, которая связана со второй таблицей через JOIN, а потом ещё и по двум столбцам сортируется), строить индексы?
Последний раз редактировалось Newbilius 11 дек 2013, 11:08, всего редактировалось 2 раза.
Re: Урок 34. Хранение данных. SQLite
лучше покажи структуру таблиц и сам запрос, думаю мы сможем подсказать
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 34. Хранение данных. SQLite
нет, для этого нужно отработать запрос на каком-нибудь менеджере и реальных данных отдельно.
А вообще, правила построения индексов не секрет, смотрите в интернете. Только имей ввиду, что индексирование влияет и на другие запросы (может тормозить)
А вообще, правила построения индексов не секрет, смотрите в интернете. Только имей ввиду, что индексирование влияет и на другие запросы (может тормозить)
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198