سؤال

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);

I made a local database and i am trying to insert some data but I get lastInsertId zero?! Where I mess up things!?

هل كانت مفيدة؟

المحلول

You don't need to make additional execution of query for retrieving last inserted row's id.There is a built-in .lastInsertRowID property of SQLResult class for that purpose. Just use it like this:

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);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top