/// <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);
        }
Example #2
0
 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;
     }
 }