Мне интересно, как реализация SQLite в Android обрабатывает длинные строки.Читая онлайн-документацию по sqlite, он сказал, что строки в sqlite ограничены 1 миллионом символов.Мои строки определенно меньше.
Я создаю простое приложение RSS, и после анализа html-документа и извлечения текста у меня возникают проблемы с сохранением его в базе данных.У меня есть 2 таблицы в базе данных, feeds
и articles
.RSS-каналы правильно сохраняются и извлекаются из таблицы feeds
, но при сохранении в таблицу articles
logcat говорит, что не может сохранить извлеченный текст в свой столбец.Я не знаю, если другие колонки тоже создают проблемы, не упоминая их в logcat.
Мне интересно, так как текст взят из статьи в Интернете, являются ли знаки, такие как (", ';;), создающие проблемы? Android автоматически их избегает, или я должен это сделать. Я используюметод вставки, аналогичный описанному в учебнике блокнота:
public long insertArticle(long feedid, String title, String link, String description, String h1,tring h2, String h3, String p, String image, long date) {
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_FEEDID, feedid);
initialValues.put(KEY_TITLE, title);
initialValues.put(KEY_LINK, link);
initialValues.put(KEY_DESCRIPTION, description );
initialValues.put(KEY_H1, h1 );
initialValues.put(KEY_H2, h2);
initialValues.put(KEY_H3, h3);
initialValues.put(KEY_P, p);
initialValues.put(KEY_IMAGE, image);
initialValues.put(KEY_DATE, date);
return mDb.insert(DATABASE_TABLE_ARTICLES,null, initialValues);
}
Столбец P предназначен для извлеченного текста, h1, h2 и h3 - для заголовков страницы. Logcat сообщает о наличии только столбца p.таблица создается с помощью следующего оператора:
private static final String DATABASE_CREATE_ARTICLES =
"create table articles( _id integer primary key autoincrement, feedid integer, title text, link text not null, description text," + "h1 text, h2 text, h3 text, p text, image text, date integer);";