/// <summary> /// Executes a request request to query values from several tables. /// This is the synchronous implementation. /// </summary> /// <parameters> /// <param name="context">Description of the request.</param> /// </parameters> /// <returns> /// The request result. /// </returns> protected virtual IJoinQueryResult Execute(IJoinQueryContext context) { if (!IsOperationThreadStarted) { return(new JoinQueryResult(false, ResultError.ErrorFatalNoOperationThread)); } IActiveOperation <IJoinQueryResultInternal> ActiveOperation = Connector.JoinQuery(context); IJoinQueryResultInternal Result = ActiveOperation.Result; FinalizeOrQueue(ActiveOperation); return(Result); }
public virtual string FinalizeOperation(MySqlCommand command, IJoinQueryResultInternal result) { try { using (MySqlDataReader Reader = command.EndExecuteReader(result.AsyncResult)) { FillResult(Reader, out List <IResultRow> Rows); result.SetCompletedWithRows(Rows); return($"succeeded, {Rows.Count} row(s) returned"); } } catch { result.SetCompleted(false, ResultError.ErrorExceptionCompletingJoinQuery); throw; } }