Exemplo n.º 1
0
        public static CharacterSet GetChararcterSet(DBVersion version, string CharSetName)
        {
            CharacterSet cs = (CharacterSet)mapping[CharSetName];

            if (cs == null)
            {
                throw new MySqlException("Character set '" + CharSetName + "' is not supported");
            }
            return(cs);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Returns the text encoding for a given MySQL character set name
 /// </summary>
 /// <param name="version">Version of the connection requesting the encoding</param>
 /// <param name="CharSetName">Name of the character set to get the encoding for</param>
 /// <returns>Encoding object for the given character set name</returns>
 public static Encoding GetEncoding(DBVersion version, string CharSetName)
 {
     try
     {
         CharacterSet cs = GetCharacterSet(version, CharSetName);
         return(Encoding.GetEncoding(cs.name));
     }
     catch (NotSupportedException)
     {
         return(Encoding.GetEncoding("utf-8"));
     }
 }
Exemplo n.º 3
0
        public static CharacterSet GetCharacterSet(DBVersion version, string CharSetName)
        {
            CharacterSet cs = null;

            if (mapping.ContainsKey(CharSetName))
            {
                cs = (CharacterSet)mapping[CharSetName];
            }

            if (cs == null)
            {
                throw new MySqlException("Character set '" + CharSetName + "' is not supported by .Net Framework.");
            }
            return(cs);
        }
Exemplo n.º 4
0
        private MySqlField GetFieldMetaData41()
        {
            MySqlField field = new MySqlField(connection);

            stream.OpenPacket();
            field.Encoding           = encoding;
            field.CatalogName        = stream.ReadLenString();
            field.DatabaseName       = stream.ReadLenString();
            field.TableName          = stream.ReadLenString();
            field.RealTableName      = stream.ReadLenString();
            field.ColumnName         = stream.ReadLenString();
            field.OriginalColumnName = stream.ReadLenString();
            stream.ReadByte();
            field.CharacterSetIndex = stream.ReadInteger(2);
            field.ColumnLength      = stream.ReadInteger(4);
            MySqlDbType type = (MySqlDbType)stream.ReadByte();
            ColumnFlags colFlags;

            if ((Flags & ClientFlags.LONG_FLAG) != 0)
            {
                colFlags = (ColumnFlags)stream.ReadInteger(2);
            }
            else
            {
                colFlags = (ColumnFlags)stream.ReadByte();
            }

            field.SetTypeAndFlags(type, colFlags);

            field.Scale = (byte)stream.ReadByte();


            if (stream.HasMoreData)
            {
                stream.ReadInteger(2); // reserved
            }

            if (charSets != null && field.CharacterSetIndex != -1)
            {
                CharacterSet cs = CharSetMap.GetChararcterSet(Version, (string)charSets[field.CharacterSetIndex]);
                field.MaxLength = cs.byteCount;
                field.Encoding  = CharSetMap.GetEncoding(version, (string)charSets[field.CharacterSetIndex]);
            }

            return(field);
        }
Exemplo n.º 5
0
        private void SetFieldEncoding()
        {
            Dictionary <int, string> charSets = driver.CharacterSets;
            DBVersion version = driver.Version;

            if (charSets == null || charSets.Count == 0 || CharacterSetIndex == -1)
            {
                return;
            }
            if (charSets[CharacterSetIndex] == null)
            {
                return;
            }

            CharacterSet cs = CharSetMap.GetCharacterSet(version, (string)charSets[CharacterSetIndex]);

            MaxLength = cs.byteCount;
            Encoding  = CharSetMap.GetEncoding(version, (string)charSets[CharacterSetIndex]);
        }