/// <summary> /// 执行查询,并返回查询的第一条记录的第一个列。 /// </summary> /// <param name="dbCommandCache">DbCommandCache对象。</param> /// <returns>返回查询结果。</returns> protected override object ExecuteScalar(AdoCommandCache dbCommandCache) { var dbCommand = dbCommandCache.DbCommand; bool insert = dbCommand.CommandText.IndexOf("insert ", System.StringComparison.OrdinalIgnoreCase) > -1; if (insert) { string tableName = Symbol.Text.StringExtractHelper.StringsStartEnd(dbCommand.CommandText, "insert into ", new string[] { "(", " values" }, 0, false, false, false); if (!string.IsNullOrEmpty(tableName)) { dbCommand.CommandText += $";\r\nselect last_insert_rowid() as [newId] from {tableName} limit 0,1"; } } var result = base.ExecuteScalar(dbCommandCache); if (insert) { if (result == null || result is System.DBNull) { string tableName = Symbol.Text.StringExtractHelper.StringsStartEnd(dbCommand.CommandText, "insert into ", new string[] { "(", " values" }, 0, false, false, false); if (!string.IsNullOrEmpty(tableName)) { dbCommand.CommandText = $"select last_insert_rowid() as [newId] from {tableName} limit 0,1"; result = base.ExecuteScalar(dbCommandCache); } } } return(result); }
/// <summary> /// 执行查询,并返回查询的第一条记录的第一个列。 /// </summary> /// <param name="dbCommandCache">DbCommandCache对象。</param> /// <returns>返回查询结果。</returns> protected override object ExecuteScalar(AdoCommandCache dbCommandCache) { var dbCommand = dbCommandCache.DbCommand; if (dbCommand.CommandText.IndexOf("insert ", System.StringComparison.OrdinalIgnoreCase) > -1 && dbCommand.CommandText.IndexOf("returning", System.StringComparison.OrdinalIgnoreCase) == -1) { dbCommand.CommandText += "returning *"; } return(base.ExecuteScalar(dbCommandCache)); }
/// <summary> /// 执行查询,并返回查询的第一条记录的第一个列。 /// </summary> /// <param name="dbCommandCache">DbCommandCache对象。</param> /// <returns>返回查询结果。</returns> protected override object ExecuteScalar(AdoCommandCache dbCommandCache) { var result = base.ExecuteScalar(dbCommandCache); var dbCommand = dbCommandCache.DbCommand; bool insert = dbCommand.CommandText.IndexOf("insert ", System.StringComparison.OrdinalIgnoreCase) > -1; if (insert) { result = FastWrapper.Get(dbCommand, "LastInsertedId"); } return(result); }
/// <summary> /// 执行查询,并返回查询的第一条记录的第一个列。 /// </summary> /// <param name="dbCommandCache">DbCommandCache对象。</param> /// <returns>返回查询结果。</returns> protected override object ExecuteScalar(AdoCommandCache dbCommandCache) { var dbCommand = dbCommandCache.DbCommand; bool insert = dbCommand.CommandText.IndexOf("insert ", System.StringComparison.OrdinalIgnoreCase) > -1; if (insert) { dbCommand.CommandText += "\r\nselect SCOPE_IDENTITY() as [newid]"; } var result = base.ExecuteScalar(dbCommandCache); if (insert) { if (result == null || result is System.DBNull) { dbCommand.CommandText = "select SCOPE_IDENTITY() as [newid]"; result = base.ExecuteScalar(dbCommandCache); } } return(result); }