/// <summary> /// Executes a request to update values in a row of a table, with constraints on the previous values. /// This is the synchronous implementation. /// </summary> /// <parameters> /// <param name="context">Description of the request.</param> /// </parameters> /// <returns> /// The request result. /// </returns> protected virtual IUpdateResult Execute(IUpdateContext context) { if (!IsOperationThreadStarted) { return(new UpdateResult(false, ResultError.ErrorFatalNoOperationThread)); } IActiveOperation <IUpdateResultInternal> ActiveOperation = Connector.Update(context); IUpdateResultInternal Result = ActiveOperation.Result; FinalizeOrQueue(ActiveOperation); return(Result); }
public virtual string FinalizeOperation(MySqlCommand command, IUpdateResultInternal result) { try { int ModifiedLines = command.EndExecuteNonQuery(result.AsyncResult); if (ModifiedLines > 0) { result.SetCompleted(true); return($"succeeded, {ModifiedLines} row(s) modified"); } else { result.SetCompleted(false, ResultError.ErrorNoRowModified); return("failed"); } } catch { result.SetCompleted(false, ResultError.ErrorExceptionCompletingUpdate); throw; } }