2009-06-16 9 views
0

非常に簡単な例私はiPhone Appプログラミングを把握しながら作成しようとしています。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から値を取得する前に誰も挿入を実行できないようにテーブルをロックします。


APIを使用して

(とないSQL):

sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*);

http://www.sqlite.org/c3ref/last_insert_rowid.htmlから)

関連する問題