1
var insertReq:SQLStatement = new SQLStatement(); 
insertReq.addEventListener(SQLErrorEvent.ERROR, dbErrorHandler);
insertReq.sqlConnection = conn; 
insertReq.text = "INSERT INTO table1 (inputTime) VALUES (DATETIME('now'))";
insertReq.execute();
insertReq.text = "SELECT last_insert_rowid() as ID";
insertReq.execute();
var lastInsertId:int = insertReq.getResult().data[0].id;
trace(lastInsertId);

ローカルデータベースを作成し、データを挿入しようとしていますが、lastInsertIdゼロになりますか?!どこでめちゃくちゃ!?

4

1 に答える 1

3

最後に挿入された行のIDを取得するために、クエリを追加で実行する必要はありません。そのために、 SQLResultクラスの組み込みの.lastInsertRowIDプロパティがあります。次のように使用してください。

var insertReq:SQLStatement = new SQLStatement(); 
insertReq.addEventListener(SQLErrorEvent.ERROR, dbErrorHandler);
insertReq.sqlConnection = conn; 
insertReq.text = "INSERT INTO table1 (inputTime) VALUES (DATETIME('now'))";
insertReq.execute();
var lastInsertId:int = insertReq.getResult().lastInsertRowID;
trace(lastInsertId);
于 2012-07-07T21:04:05.467 に答える