private void ReadNullMap(int fieldCount) { // if we are binary, then we need to load in our null bitmap nullMap = null; byte[] nullMapBytes = new byte[(fieldCount + 9) / 8]; packet.ReadByte(); packet.Read(nullMapBytes, 0, nullMapBytes.Length); nullMap = new BitArray(nullMapBytes); }
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; }
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; }
IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal) { if (nullVal) return new MySqlSingle(true); if (length == -1) { byte[] b = new byte[4]; packet.Read(b, 0, 4); return new MySqlSingle(BitConverter.ToSingle(b, 0)); } return new MySqlSingle(Single.Parse(packet.ReadString(length), CultureInfo.InvariantCulture)); }
IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal) { if (nullVal) return new MySqlDouble(true); if (length == -1) { var b = new byte[8]; packet.Read(b, 0, 8); return new MySqlDouble(BitConverter.ToDouble(b, 0)); } var s = packet.ReadString(length); double d; try { d = Double.Parse(s, CultureInfo.InvariantCulture); } catch (OverflowException) { // MySQL server < 5.5 can return values not compatible with // Double.Parse(), i.e out of range for double. if (s.StartsWith("-", StringComparison.Ordinal)) d = double.MinValue; else d = double.MaxValue; } return new MySqlDouble(d); }
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; }