ReadFieldLength() public method

public ReadFieldLength ( ) : long
return long
        internal void ReadOk(bool read)
        {
            try
            {
                if (read)
                {
                    packet = stream.ReadPacket();
                }
                byte marker = (byte)packet.ReadByte();
                if (marker != 0)
                {
                    throw new MySqlException("Out of sync with server", true, null);
                }

                packet.ReadFieldLength();                 /* affected rows */
                packet.ReadFieldLength();                 /* last insert id */
                if (packet.HasMoreData)
                {
                    serverStatus = (ServerStatusFlags)packet.ReadInteger(2);
                    packet.ReadInteger(2);                      /* warning count */
                    if (packet.HasMoreData)
                    {
                        packet.ReadLenString();                          /* message */
                    }
                }
            }
            catch (MySqlException ex)
            {
                HandleException(ex);
                throw;
            }
        }
Beispiel #2
0
        public int GetResult(ref int affectedRow, ref long insertedId)
        {
            try
            {
                packet = stream.ReadPacket();
            }
            catch (TimeoutException)
            {
                // Do not reset serverStatus, allow to reenter, e.g when
                // ResultSet is closed.
                throw;
            }
            catch (Exception)
            {
                serverStatus &= ~(ServerStatusFlags.AnotherQuery |
                                  ServerStatusFlags.MoreResults);
                throw;
            }

            int fieldCount = (int)packet.ReadFieldLength();

            if (-1 == fieldCount)
            {
                if (this.Settings.AllowLoadLocalInfile)
                {
                    string filename = packet.ReadString();
                    SendFileToServer(filename);

                    return(GetResult(ref affectedRow, ref insertedId));
                }
                else
                {
                    stream.Close();
                    throw new MySqlException(Resources.LocalInfileDisabled);
                }
            }
            else if (fieldCount == 0)
            {
                // the code to read last packet will set these server status vars
                // again if necessary.
                serverStatus &= ~(ServerStatusFlags.AnotherQuery |
                                  ServerStatusFlags.MoreResults);
                affectedRow = (int)packet.ReadFieldLength();
                insertedId  = (long)packet.ReadFieldLength();

                serverStatus = (ServerStatusFlags)packet.ReadInteger(2);
                warnings    += packet.ReadInteger(2);
                if (packet.HasMoreData)
                {
                    packet.ReadLenString(); //TODO: server message
                }
            }
            return(fieldCount);
        }
 void IMySqlValue.SkipValue(MySqlPacket packet)
 {
     int len = packet.ReadFieldLength();
     packet.Position += len;
 }
        IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal)
        {
            MySqlBinary b;
            if (nullVal)
                b = new MySqlBinary(type, true);
            else
            {
                if (length == -1)
                    length = (long)packet.ReadFieldLength();

                byte[] newBuff = new byte[length];
                packet.Read(newBuff, 0, (int)length);
                b = new MySqlBinary(type, newBuff);
            }
            return b;
        }
    public int GetResult(ref int affectedRow, ref long insertedId)
    {
      try
      {
        packet = stream.ReadPacket();
      }
      catch (TimeoutException)
      {
        // Do not reset serverStatus, allow to reenter, e.g when
        // ResultSet is closed.
        throw;
      }
      catch (Exception)
      {
        serverStatus = 0;
        throw;
      }

      int fieldCount = (int)packet.ReadFieldLength();
      if (-1 == fieldCount)
      {
        string filename = packet.ReadString();
        SendFileToServer(filename);

        return GetResult(ref affectedRow, ref insertedId);
      }
      else if (fieldCount == 0)
      {
        // the code to read last packet will set these server status vars 
        // again if necessary.
        serverStatus &= ~(ServerStatusFlags.AnotherQuery |
                          ServerStatusFlags.MoreResults);
        affectedRow = (int)packet.ReadFieldLength();
        insertedId = (long)packet.ReadFieldLength();

        serverStatus = (ServerStatusFlags)packet.ReadInteger(2);
        warnings += packet.ReadInteger(2);
        if (packet.HasMoreData)
        {
          packet.ReadLenString(); //TODO: server message
        }
      }
      return fieldCount;
    }
    private MySqlGuid ReadOldGuid(MySqlPacket packet, long length)
    {
      if (length == -1)
        length = (long)packet.ReadFieldLength();

      byte[] buff = new byte[length];
      packet.Read(buff, 0, (int)length);
      MySqlGuid g = new MySqlGuid(buff);
      g.OldGuids = OldGuids;
      return g;
    }
Beispiel #7
0
    public IMySqlValue ReadValue(MySqlPacket packet, long length, bool isNull)
    {
      this.isNull = isNull;
      if (isNull)
        return this;

      if (length == -1)
        length = packet.ReadFieldLength();

      if (ReadAsString)
        mValue = UInt64.Parse(packet.ReadString(length));
      else
        mValue = (UInt64)packet.ReadBitValue((int)length);
      return this;
    }
Beispiel #8
0
 public void SkipValue(MySqlPacket packet)
 {
   int len = (int)packet.ReadFieldLength();
   packet.Position += len;
 }
        IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal)
        {
            MySqlGeometry g;
              if (nullVal)
            g = new MySqlGeometry(_type, true);
              else
              {
            if (length == -1)
              length = (long)packet.ReadFieldLength();

            byte[] newBuff = new byte[length];
            packet.Read(newBuff, 0, (int)length);
            g = new MySqlGeometry(_type, newBuff);
              }
              return g;
        }
Beispiel #10
0
        public IMySqlValue ReadValue(MySqlPacket packet, long length, bool isNull)
        {
            this.isNull = isNull;
            if (isNull)
                return this;

            if (length == -1)
                length = packet.ReadFieldLength();

            mValue = (UInt64)packet.ReadBitValue((int)length);
            return this;
        }