Пример #1
0
 /// <summary>
 ///+/- blocking
 /// </summary>
 /// <param name="nextAction"></param>
 public void Execute(bool execReader, Action nextAction = null)
 {
     _execState     = QueryExecState.Exec;
     _queryUsedMode = execReader ? QueryUseMode.ExecReader : QueryUseMode.ExecNonQuery;
     //-------------------
     //blocking method***
     //wait until execute finish
     //-------------------
     if (nextAction != null)
     {
         //not block here
         if (_prepareContext != null)
         {
             ExecutePrepareQuery_A(nextAction);
         }
         else
         {
             ExecuteNonPrepare_A(nextAction);
         }
     }
     else
     {
         //block
         _conn.InitWait();
         if (_prepareContext != null)
         {
             ExecutePrepareQuery_A(_conn.UnWait);
         }
         else
         {
             ExecuteNonPrepare_A(_conn.UnWait);
         }
         _conn.Wait();
     }
 }
Пример #2
0
        /// <summary>
        /// +/- blocking
        /// </summary>
        /// <param name="nextAction"></param>
        public void Prepare(Action nextAction = null)
        {
            _execState     = QueryExecState.Prepare;
            _queryUsedMode = QueryUseMode.Prepare;

            if (_cmdParams == null)
            {
                throw new Exception("Sql cmdParams can not null.");
            }
            //-------------------
            //blocking method***
            //wait until execute finish
            //-------------------
            //prepare sql query
            _sqlParserMx.UsePrepareResponseParser();
            _prepareContext = null;
            //-------------------------------------------------------------
            _writer.Reset();
            ComPrepareStatementPacket.Write(
                _writer,
                _sqlStrTemplate.BindValues(_cmdParams, true));
            //-------------------------------------------------------------
            if (nextAction != null)
            {
                //not block here
                SendAndRecv_A(_writer.ToArray(), nextAction);
            }
            else
            {
                //blocking
                _conn.InitWait();
                SendAndRecv_A(_writer.ToArray(), _conn.UnWait);
                _conn.Wait();
            }
        }
Пример #3
0
 /// <summary>
 ///+/- blocking
 /// </summary>
 /// <param name="nextAction"></param>
 public void Execute(bool execReader, Action nextAction = null)
 {
     _execState     = QueryExecState.Exec;
     _queryUsedMode = execReader ? QueryUseMode.ExecReader : QueryUseMode.ExecNonQuery;
     //-------------------
     //blocking method***
     //wait until execute finish
     //-------------------
     if (nextAction != null)
     {
         //not block here
         if (_prepareContext != null)
         {
             ExecutePrepareQuery_A(nextAction);
         }
         else
         {
             if (!execReader)
             {
                 //execute non query,
                 ExecuteNonPrepare_A(() =>
                 {
                     Close(nextAction);
                 });
             }
             else
             {
                 ExecuteNonPrepare_A(nextAction);
             }
         }
     }
     else
     {
         //block
         _conn.InitWait();
         if (_prepareContext != null)
         {
             ExecutePrepareQuery_A(_conn.UnWait);
         }
         else
         {
             ExecuteNonPrepare_A(_conn.UnWait);
         }
         if (!_conn.Wait())
         {
             //TODO: handle wait-timeout
             _execState = QueryExecState.Terminated;
         }
         else
         {
             if (!execReader && _prepareContext == null)
             {
                 //execute non query
                 Close(null);
             }
         }
     }
 }
Пример #4
0
 /// <summary>
 ///+/- blocking 
 /// </summary>
 /// <param name="nextAction"></param>
 public void Execute(bool execReader, Action nextAction = null)
 {
     _execState = QueryExecState.Exec;
     _queryUsedMode = execReader ? QueryUseMode.ExecReader : QueryUseMode.ExecNoneQuery;
     //-------------------
     //blocking method***
     //wait until execute finish 
     //-------------------  
     if (nextAction != null)
     {
         //not block here
         if (_prepareContext != null)
         {
             ExecutePrepareQuery_A(nextAction);
         }
         else
         {
             ExecuteNonPrepare_A(nextAction);
         }
     }
     else
     {
         //block
         _conn.InitWait();
         if (_prepareContext != null)
         {
             ExecutePrepareQuery_A(_conn.UnWait);
         }
         else
         {
             ExecuteNonPrepare_A(_conn.UnWait);
         }
         _conn.Wait();
     }
 }
Пример #5
0
        /// <summary>
        /// +/- blocking
        /// </summary>
        /// <param name="nextAction"></param>
        public void Prepare(Action nextAction = null)
        {
            _execState = QueryExecState.Prepare;
            _queryUsedMode = QueryUseMode.Prepare;

            if (_cmdParams == null)
            {
                throw new Exception("Sql cmdParams can not null.");
            }
            //-------------------
            //blocking method***
            //wait until execute finish 
            //-------------------
            //prepare sql query             
            _sqlParserMx.UsePrepareResponseParser();
            _prepareContext = null;
            //-------------------------------------------------------------
            _writer.Reset();
            ComPrepareStatementPacket.Write(
                _writer,
                _sqlStrTemplate.BindValues(_cmdParams, true));
            //-------------------------------------------------------------
            if (nextAction != null)
            {
                //not block here
                SendAndRecv_A(_writer.ToArray(), nextAction);
            }
            else
            {
                //blocking
                _conn.InitWait();
                SendAndRecv_A(_writer.ToArray(), _conn.UnWait);
                _conn.Wait();
            }
        }