void ExecutePrepareQuery_A(Action nextAction) { //make sure that when Finished is called //when this complete if (_prepareContext == null) { ExecuteNonPrepare_A(nextAction); return; } if (_prepareContext.statementId == 0) { throw new Exception("exec Prepare() first"); } //------------------------------------------------ ResetPrepareStmt_A(() => { //The server will send a OK_Packet if the statement could be reset, a ERR_Packet if not. //-------------------------------------------- _prepareStatementMode = true; _sqlParserMx.UseResultParser(true); //-------------------------------------------- _writer.Reset(); //fill prepared values ComExecPrepareStmtPacket.Write(_writer, _prepareContext.statementId, _prepareContext.PrepareBoundData(_cmdParams)); //-------------------------------------------- SendAndRecv_A(_writer.ToArray(), nextAction); }); }
void ExecutePrepareQuery() { if (_cmdParams == null) { return; } if (_prepareContext == null) { ExecuteNonPrepare(); return; } if (_prepareContext.statementId == 0) { throw new Exception("exec Prepare() first"); } //--------------------------------------------------------------------------------- if (_executePrepared) { ResetPrepareStmt(); } _writer.Reset(); //fill prepared values var excute = new ComExecutePrepareStatement(_prepareContext.statementId, _prepareContext.PrepareBoundData(_cmdParams)); excute.WritePacket(_writer); SendPacket(_writer.ToArray()); ParseReceivePacket(); _executePrepared = true; if (OkPacket != null || LoadError != null) { return; } _lastPrepareRow = new RowPreparedDataPacket(_tableHeader); }