android - Android 上的 SQLite 如何处理长字符串?

标签 android sqlite

我想知道 Android 的 SQLite 实现如何处理长字符串。从 sqlite 的在线文档中读取,它说 sqlite 中的字符串限制为 100 万个字符。我的琴弦肯定更小。

我正在创建一个简单的 RSS 应用程序,在解析 html 文档并提取文本后,我在将它保存到数据库时遇到了问题。我在数据库中有 2 个表,feedsarticles。 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);";

最佳答案

由于 Android 使用 SQLite 作为后端,所有字段都是可变长度的。默认的 sqlite 字段长度限制是 10 亿个字符,但 android 可能已经改变了这一点。

关于android - Android 上的 SQLite 如何处理长字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3068180/

相关文章:

java - Android/Java asyncTask 等待

php - 无法为对象输入值。导致 JSON 对象响应

sqlite - 如何在 SQLite 中获取分层树路径?

c++ - sqlite3 c/c++,获取聚合查询涉及的表名

sqlite - 是否有可以将选择查询输出为 SQL 插入命令的 SQLite 命令?

java - 错误数据库未打开

java - android通知remoteview不显示

android - 在 Google Play 上设置促销,价格低于 0.99 美元

android - 单击内部布局重定向到另一个布局

android - HTC Desire HD 的 Sqlite 问题