2011-05-29 69 views
0

我想从互联网上更新我的sqlite内容。 我已经将sqlite数据库复制到文档目录,并从那里使用ASIHTTPRequest获取文本sqlite更新(准备好的sqlite语句与值和键)。iphone/sqlite的问题

我的sqlite的语句如下:

INSERT OR REPLACE INTO items (id, name, parentid, orderme) VALUES (...); 

遥控器上的sqlite的(一个我得到的对账单)的ID是1:1与那些在我的本地项目。

更新虽然只发生在已经找到的id上。当没有发现Id时,没有插入发生。 sqlite iphone版本有问题吗?

现在有什么奇怪的是,如果我从应用程序内部运行相同的命令(而不是从互联网接收),它会创建所需的数据。我已经用fmdb和sqlite原生命令尝试过了,所以插入代码时一定有问题。你对此有何见解?

(我没有使用核心数据的一些便携性的原因)。

+0

sql查询看起来非常好,它的obj c部分怎么样? (我目前在应用商店中的sql有相同的内容) – Sam 2011-05-29 19:55:51

+0

你能澄清一件事情:你说远程数据与本地数据是1:1,所以不应该每行都有一个现有的ID,因此,你不会没有任何INSERT正在进行,只是REPLACE?数据是如何从你的服务中返回的,也许它只是返回现有的行,所以你只是没有看到任何插入的机会?在尝试更新数据库之前是否记录了数据? – 2011-05-29 20:54:14

+0

不,因为我在下面回答,实际上它是一行脚本错误。我试图打包所有的插入(替换),以便我不会有大块(“名称”是一个大的文本字段)。 这很有趣,这样的小事情会让你延迟发展。 – Panagiotis 2011-05-30 07:31:58

回答

0

所以,实际上脚本是好的。

SQLITE不支持多行命令(像MySQL一样)。所以一旦我把它们分解成多行,一切正常。