我已经设法将一些JSON存储到我的sqlite数据库中的一个字段,TEXT的长度(在sqlite文档中对文本字段大小没有限制)字段为1337.
我甚至尝试过varchar,但我的应用程序再次与SGABRT崩溃。我没有得到任何其他错误细节。
查看sqlite实用程序中的记录,数据完整且正常,我的查询显示如下。
我甚至替换了为什么查询和代码与另一个表中的记录一起使用。
我知道我应该使用Core Data,但这是一个现有应用,我目前无法转换它。
不确定如何继续?
NSString *ret = @"";
const char *sql = "select value from MyTable where item = 'json'";
sqlite3 *database;
int result = sqlite3_open(... db path function ...], &database);
... snip in not db and error code ...
sqlite3_stmt *statementTMP;
sqlite3_prepare_v2(database, sql, -1, &statementTMP, NULL);
if (sqlite3_step(statementTMP) == SQLITE_ROW) {
ret = [[NSString alloc] initWithUTF8String:
(char *)sqlite3_column_text(statementTMP, 1)]; << Fails here
}
sqlite3_finalize(statementTMP);
sqlite3_close(database);
修改
启动我的JSON数据
{"lowestday":"31","pfAppAdvAcSel":-1,"styleselec
进一步编辑
char *test = (char *)sqlite3_column_text(statementTMP, 1);
NSLog(@"value = %s", test); << (NULL)
答案 0 :(得分:0)
问题是您错误地调用了sqlite3_column_text()
。由于您只选择一个列(值),因此只有一列可以从中提取文本。在SQLite3中,列号从0开始,而不是1.因此,您应该将调用的第二个参数更改为sqlite3_column_text
,而不是1。