Exemplo n.º 1
0
        public static T[] Query <T>(this MySqlDriver driver, FormattableString query)
        {
            driver.Open();
            var reader = driver.Query(query);

            var converter = ConverterCache <T> .GetConverter(reader);

            var array = ThreadStaticArrayPool <T> .GetArray();

            var count = 0;

            while (reader.Read())
            {
                if (count == array.Length)
                {
                    Array.Resize(ref array, checked ((int)(count * 1.5)));
                }

                var v = converter(reader);
                array[count++] = v;
            }

            if (array == ThreadStaticArrayPool <T> .GetArray())
            {
                var result = new T[count];
                Array.Copy(array, result, count);
                Array.Clear(array, 0, count); // null clear
                return(result);
            }
            else
            {
                Array.Resize(ref array, count);
                return(array);
            }
        }
Exemplo n.º 2
0
        public static IEnumerable <T> QueryEnumerable <T>(this MySqlDriver driver, FormattableString query)
        {
            driver.Open();
            var reader    = driver.Query(query);
            var converter = ConverterCache <T> .GetConverter(reader);

            while (reader.Read())
            {
                var v = converter(reader);
                yield return(v);
            }
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            var option = new MySqlSharp.MySqlConnectionOptions
            {
                Server   = "",
                Database = "",
                UserId   = "",
                Password = "",
            };



            var driver = new MySqlDriver(option);

            driver.Open();

            var reader = driver.Query <long>($"select 1543535353 as aaa, 1234213, 21313");



            //var nextReader = reader.CreateNextReader();
            //nextReader.rea



            ////var prepare = driver.Prepare("select version() as v, 199 as num union select version(), 399");
            //var prepare = driver.Prepare("select 1");
            //var reader = driver.Execute(prepare.StatementId);


            //while (reader.Read())
            //{
            //    //var a = reader.GetString(0);
            //    var b = reader.GetInt32(0);
            //}



            /*
             * var reader = driver.Query("select version() as v, 199 as num union select version(), 399");
             *
             * while (reader.MoveNext())
             * {
             * // set.
             *
             * var s = reader.GetString(0);
             * var i = reader.GetInt32(1);
             * }
             */
        }
Exemplo n.º 4
0
        public static T[] QueryOne <T>(this MySqlDriver driver, FormattableString query)
        {
            driver.Open();
            var reader = driver.Query(query);

            // reader.ColumnDefinitions
            // reader.ColumnDefinitions

            // var pool = System.Buffers.ArrayPool<T>.Shared.Rent(1024);
            // reader.ColumnDefinitions
            // System.Buffers.ArrayPool<T>.Shared.Return(pool, true);
            // create final buffer.
            // (query.Format),
            // return Cache<T>.convert(reader);

            // Array.Clear(0,

            // reader.ColumnDefinitions

            return(null);
        }
Exemplo n.º 5
0
        /// <summary>SELECT * from COLLATIONS</summary>
        public static Collations Collations(MySqlDriver driver)
        {
            var query = driver.Query("SELECT * from COLLATIONS");

            throw new NotImplementedException("TODO:Mapping");
        }