Exemplo n.º 1
0
 public void ThrowIfErrorPacket()
 {
     if (IsErrorPacket())
     {
         throw ErrorPacket.Parse(ref this).ToMySqlException();
     }
 }
Exemplo n.º 2
0
        public StatementPrepareOk Prepare(string query)
        {
            var stream = client.GetStream();

            var readWriteBuffer = InternalMemoryPool.GetBuffer();
            var writer          = PacketWriter.Create(readWriteBuffer);

            ProtocolWriter.WritePrepareStatement(ref writer, query);

            var reader = SyncWriteAndRead(ref writer, 0, stream);

            // COM_STMT_PREPARE_OK on success, ERR_Packet otherwise
            if (reader.IsErrorPacket())
            {
                throw ErrorPacket.Parse(ref reader).ToMySqlException();
            }

            return(ProtocolReader.ReadStatementPrepareOk(ref reader));
        }
Exemplo n.º 3
0
        public override bool Read()
        {
            rowReader = rowReader.CreateNextReader();
            if (rowReader.IsEofPacket())
            {
                return(false);
            }
            else if (rowReader.IsErrorPacket())
            {
                throw ErrorPacket.Parse(ref rowReader).ToMySqlException();
            }

            for (int i = 0; i < rowData.Length; i++)
            {
                rowData[i] = rowReader.ReadLengthEncodedStringSegment();
            }

            return(true);
        }
Exemplo n.º 4
0
        public BinaryResultSet Execute(int statementId, params object[] parameters) // how to avoid boxing?
        {
            var stream = client.GetStream();

            var readWriteBuffer = InternalMemoryPool.GetBuffer();
            var writer          = PacketWriter.Create(readWriteBuffer);

            ProtocolWriter.WriteExecuteStatement(ref writer, statementId, parameters);

            var reader = SyncWriteAndRead(ref writer, 0, stream);

            // COM_STMT_PREPARE_OK on success, ERR_Packet otherwise
            if (reader.IsErrorPacket())
            {
                throw ErrorPacket.Parse(ref reader).ToMySqlException();
            }

            // TODO: Ok or ResultSet?
            var set = ProtocolReader.ReadBinaryResultSet(ref reader);

            return(set);
        }