/// <inheritDoc /> public override string GetLastInsertId(PDO pdo, string name) { pdo.ClosePendingReader(); string last_insert_id_query; if (string.IsNullOrEmpty(name)) { last_insert_id_query = "SELECT @@IDENTITY"; } else { // TODO: "SELECT CURRENT_VALUE FROM SYS.SEQUENCES WHERE NAME=%s" throw new NotImplementedException(nameof(name)); } using (var com = pdo.CreateCommand(last_insert_id_query)) { var value = com.ExecuteScalar(); if (value == null) { // TODO: error return(null); } return(value.ToString()); } }
/// <inheritDoc /> public override string GetLastInsertId(PDO pdo, string name) { using (var cmd = pdo.CreateCommand("SELECT LAST_INSERT_ID()")) { object value = cmd.ExecuteScalar(); return(value?.ToString()); } }
/// <inheritDoc /> public override string GetLastInsertId(PDO pdo, string name) { using (var com = pdo.CreateCommand("SELECT SCOPE_IDENTITY()")) { object value = com.ExecuteScalar(); return(value?.ToString()); } }
/// <inheritDoc /> public override string GetLastInsertId(PDO pdo, string name) { //TODO firebird pdo characters escaping using (var cmd = pdo.CreateCommand("select gen_id('" + name + "', 0) from rdb$database")) { object value = cmd.ExecuteScalar(); return(value?.ToString()); } }
/// <inheritDoc /> public override string GetLastInsertId(PDO pdo, string name) { Debug.Fail("last_insert_id not implemented"); // this is probably not correct: using (var cmd = pdo.CreateCommand("SELECT LAST_INSERT_ROWID()")) { object value = cmd.ExecuteScalar(); return(value?.ToString()); } }
/// <inheritDoc /> public override string GetLastInsertId(PDO pdo, string name) { // The last_insert_rowid() SQL function is a wrapper around the sqlite3_last_insert_rowid() // https://www.sqlite.org/lang_corefunc.html#last_insert_rowid using (var cmd = pdo.CreateCommand("SELECT LAST_INSERT_ROWID()")) { object value = cmd.ExecuteScalar(); // can't be null return(value != null?value.ToString() : string.Empty); } }
/// <summary> /// Creates command using provided PDO driver. /// </summary> public static DbCommand CreateCommand(this PDO pdo, string statement) => pdo.CreateCommand(statement);