Простой код вставки базы данных Android SQLite - PullRequest
0 голосов
/ 12 марта 2012

Обнаружена ошибка при создании простой базы данных SQLite для приложения Android

**03-12 12:57:39.635: E/Database(333): Failure 1 
(near "tablefriends": syntax error) on 0x29b2b0 
when preparing 'create tablefriends(_id integer 
primary key autoincrement,name text not null,address text);

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

protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    FriendsDataSource s=new FriendsDataSource(this);
    s.closedatabase();

}

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    FriendsDataSource s=new FriendsDataSource(this);
    s.opendatabase();
}

public static final String FRIENDS_TABLE_CREATE_STMT="create table"+TABLE_NAME+
       "("+COLUMN_ID+" integer primary key autoincrement,"+
       COLUMN_FRIEND_NAME+" text not null,"+COLUMN_ADDRESS+" text);";

1 Ответ

2 голосов
/ 12 марта 2012

У вас проблемы с интервалом, как это часто бывает при конкатенации строк;

"create table" + TABLE_NAME // becomes "create tablefriends"

Когда вы сталкиваетесь со странными ошибками SQL, всегда полезно посмотреть / отследить сгенерированную строку так,что это соответствует тому, что вы ожидаете.В этом случае ваше сообщение об ошибке в верхней части вопроса показывает ошибку, хотя.

Правильная версия должна быть;

"create table " + TABLE_NAME // becomes "create table friends"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...