简体   繁体   English

flex本地数据库lastInsertId = 0

[英]flex local database lastInsertId = 0

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?! 我创建了一个本地数据库,我试图插入一些数据,但我得到lastInsertId为零?! 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. 您不需要执行额外的查询执行来检索最后插入的行的id。 为此SQLResult类有一个内置的.lastInsertRowID属性。 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 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM