2009-06-16 29 views
0

一个非常简单的示例,我正在尝试创建,因为我掌握了iPhone应用程序编程。如何使用Sqlite获取iPhone上的父对象的密钥

第一个TableView显示了制作,选择一个将用户带到不同的视图(我可以使用相同的视图来显示模型)以显示模型。 如果显示汽车模型的模型TableView允许用户添加新记录,我如何以及在何处捕获父键(make)的主键(pk)?

哪种方法可以捕获主键以及如何?

SQLite数据库:

CREATE TABLE make(pk INTEGER PRIMARY KEY, parentkey INTEGER DEFAULT 0, title TEXT); 

INSERT INTO make(title) VALUES('Honda'); 
INSERT INTO make(title) VALUES('Toyota'); 
INSERT INTO make(title) VALUES('Mazda'); 
INSERT INTO make(title) VALUES('Nissan'); 

INSERT INTO make(title, parentkey) VALUES('Civic', 1); 
INSERT INTO make(title, parentkey) VALUES('Accord', 1); 
INSERT INTO make(title, parentkey) VALUES('Corolla', 2); 
INSERT INTO make(title, parentkey) VALUES('Corona', 2); 

回答

0

通过SQL,您可以在每次插入后查询SQLITE_SEQUENCE表:

SELECT seq FROM SQLITE_SEQUENCE WHERE name = 'make'

如果你做你插入这只会可靠工作并且这在同一事务中选择,锁定表,以便在从seq获取值之前,没有其他人可以执行插入操作uence表。


使用API​​(而不是SQL):

sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*);

(从http://www.sqlite.org/c3ref/last_insert_rowid.html