SQLite: 2 проблемы при работе с таблицей - PullRequest
0 голосов
/ 13 июня 2010

Привет всем,

У меня есть объект SQliteDatabase db, я хочу создать таблицу в db со следующим кодом

db.execSQL("CREATE TABLE IF NOT EXISTS "+ TABLE2_NAME + " (exer_nr INTEGER PRIMARY KEY ,exerText       varchar(250),answerA varchar(250),answerB varchar(250),answerC varchar(250),answerD varchar(250))");

Произошла ошибка.Зачем?Это слишком большое?Как я могу это исправить?

Еще одна проблема: я хочу вставить строку в таблицу, столбец которой "exerText" содержит следующий код как часть своего содержимого.

main( )
{ int m=12, n=34;
printf("%d%d", m+ +,+ +n);
printf("%d%d\n",n+ +,+ +m);
}

Произошла ошибка из-за символов "" и "в коде.Как я могу решить эту проблему?

Большое спасибо

Ответы [ 3 ]

0 голосов
/ 14 июня 2010

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

0 голосов
/ 14 июня 2010

Не уверен насчет Android вообще, но, следуя вашим комментариям, возможно, версия Android для sqlite имеет ограничение на размер строки.Чтобы проверить это, измените длину столбцов с 250 на 50 и посмотрите, работает ли он.

Что касается вставки, вы можете решить проблему, удвоив символ, который вы используете для quoting значений.Поэтому, если вам нужно вставить quote_'_and_double_quote_"_end, вы можете сделать это одним из двух способов:

INSERT INTO TABLE test_table (mytext) VALUES ('quote_''_and_double_quote_"_end');
INSERT INTO TABLE test_table (mytext) VALUES ("quote_'_and_double_quote_""_end");
0 голосов
/ 13 июня 2010

"CREATE TABLE ЕСЛИ НЕ СУЩЕСТВУЕТ" только для sqlite3. Вы используете sqlite2?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...