public override void Execute() { if (!this.IsPrepared) { base.Execute(); } else { MySqlStream stream = new MySqlStream(base.Driver.Encoding); BitArray array = new BitArray(base.Parameters.Count); if (this.paramList != null) { for (int i = 0; i < this.paramList.Length; i++) { MySqlParameter parameter = base.Parameters[this.paramList[i].ColumnName]; if ((parameter.Value == DBNull.Value) || (parameter.Value == null)) { array[i] = true; } } } byte[] buffer = new byte[(base.Parameters.Count + 7) / 8]; if (buffer.Length > 0) { array.CopyTo(buffer, 0); } stream.WriteInteger((long)this.statementId, 4); stream.WriteByte(0); stream.WriteInteger(1L, 4); stream.Write(buffer); stream.WriteByte(1); if (this.paramList != null) { foreach (MySqlField field in this.paramList) { MySqlParameter parameter2 = base.Parameters[field.ColumnName]; stream.WriteInteger((long)parameter2.GetPSType(), 2); } foreach (MySqlField field2 in this.paramList) { int index = base.Parameters.IndexOf(field2.ColumnName); if (index == -1) { throw new MySqlException("Parameter '" + field2.ColumnName + "' is not defined."); } MySqlParameter parameter3 = base.Parameters[index]; if ((parameter3.Value != DBNull.Value) && (parameter3.Value != null)) { stream.Encoding = field2.Encoding; parameter3.Serialize(stream, true); } } } this.executionCount++; base.Driver.ExecuteStatement(stream.InternalBuffer.ToArray()); } }
public override void Execute() { if (!this.IsPrepared) { base.Execute(); } else { MySqlStream stream = new MySqlStream(base.Driver.Encoding); BitArray array = new BitArray(base.Parameters.Count); if (this.paramList != null) { for (int i = 0; i < this.paramList.Length; i++) { MySqlParameter parameter = base.Parameters[this.paramList[i].ColumnName]; if ((parameter.Value == DBNull.Value) || (parameter.Value == null)) { array[i] = true; } } } byte[] buffer = new byte[(base.Parameters.Count + 7) / 8]; if (buffer.Length > 0) { array.CopyTo(buffer, 0); } stream.WriteInteger((long) this.statementId, 4); stream.WriteByte(0); stream.WriteInteger(1L, 4); stream.Write(buffer); stream.WriteByte(1); if (this.paramList != null) { foreach (MySqlField field in this.paramList) { MySqlParameter parameter2 = base.Parameters[field.ColumnName]; stream.WriteInteger((long) parameter2.GetPSType(), 2); } foreach (MySqlField field2 in this.paramList) { int index = base.Parameters.IndexOf(field2.ColumnName); if (index == -1) { throw new MySqlException("Parameter '" + field2.ColumnName + "' is not defined."); } MySqlParameter parameter3 = base.Parameters[index]; if ((parameter3.Value != DBNull.Value) && (parameter3.Value != null)) { stream.Encoding = field2.Encoding; parameter3.Serialize(stream, true); } } } this.executionCount++; base.Driver.ExecuteStatement(stream.InternalBuffer.ToArray()); } }
void IMySqlValue.WriteValue(MySqlStream stream, bool binary, object val, int length) { ulong num = Convert.ToUInt64(val); if (binary) { stream.Write(BitConverter.GetBytes(num)); } else { stream.WriteStringNoNull(num.ToString()); } }
void IMySqlValue.WriteValue(MySqlStream stream, bool binary, object val, int length) { float num = Convert.ToSingle(val); if (binary) { stream.Write(BitConverter.GetBytes(num)); } else { stream.WriteStringNoNull(num.ToString("R", CultureInfo.InvariantCulture)); } }
void IMySqlValue.WriteValue(MySqlStream stream, bool binary, object val, int length) { byte[] bytes = null; if (val is byte[]) { bytes = (byte[]) val; } else if (val is char[]) { bytes = stream.Encoding.GetBytes(val as char[]); } else { string s = val.ToString(); if (length == 0) { length = s.Length; } else { s = s.Substring(0, length); } bytes = stream.Encoding.GetBytes(s); } if (length == 0) { length = bytes.Length; } if (bytes == null) { throw new MySqlException("Only byte arrays and strings can be serialized by MySqlBinary"); } if (binary) { stream.WriteLength((long) length); stream.Write(bytes, 0, length); } else { if (stream.Version.isAtLeast(4, 1, 0)) { stream.WriteStringNoNull("_binary "); } stream.WriteByte(0x27); this.EscapeByteArray(bytes, length, stream); stream.WriteByte(0x27); } }