Пример #1
0
        /// <summary>
        /// Ctr.
        /// </summary>
        /// <param name="connection">Parent connection</param>
        /// <param name="inputStream">Incoming data stream from server</param>
        /// <param name="holders">Array of holder objects that must be disposed when reader is closed</param>
        public PqlDataReader(PqlDataConnection connection, BufferedReaderStream inputStream, params IDisposable[] holders)
        {
            m_protocolUtility = new PqlProtocolUtility(connection, inputStream, holders);
            try
            {
                m_reader = inputStream.MyReader;
                m_scheme = m_protocolUtility.ReadResponseHeaders(inputStream);

                if (m_scheme.Fields != null && m_scheme.Fields.Length > 0)
                {
                    m_currentRow = new RowData(m_scheme.Fields.Select(x => x.DataType).ToArray());
                    m_state = ReaderState.New;
                }
                else
                {
                    m_state = ReaderState.Closed;
                }

                connection.SwitchToFetchingState();
            }
            catch
            {
                m_protocolUtility.Dispose();
                throw;
            }
        }
Пример #2
0
        public CGIResponseData GetData(string[] commandline)
        {
            if (commandline == null || commandline.Length != 2)
            {
                return(new CGIResponseData("Error in command line. " + UsageText));
            }

            try
            {
                InitThreadContext();

                var commandtype = commandline[0].ToLowerInvariant();
                var commandtext = commandline[1];

                using (var connection = new PqlDataConnection())
                {
                    connection.ConnectionString = ConnectionString;
                    connection.Open();
                    var cmd = connection.CreateCommand();
                    cmd.CommandText = commandtext;

                    if (commandtype == "prepare")
                    {
                        cmd.Prepare();
                        return(new CGIResponseData("Prepared."));
                    }

                    if (commandtype == "u")
                    {
                        var raff = cmd.ExecuteNonQuery();
                        return(new CGIResponseData("Update complete. Affected records: " + raff));
                    }

                    if (commandtype == "q")
                    {
                        using (var reader = cmd.ExecuteReader())
                        {
                            return(new CGIResponseData(reader));
                        }
                    }

                    return(new CGIResponseData("Invalid command type: " + commandtype + ". " + UsageText));
                }
            }
            catch (Exception e)
            {
                return(new CGIResponseData(e.Message));
            }
        }
Пример #3
0
        private PqlDataConnection GetTestConnection()
        {
            SetThreadContext(-1);

            var conn = new PqlDataConnection();

            conn.ConnectionString = string.Format(
                "Server={0}/{1};Database={2}",
                TestServiceContainer.TestHostBaseAddressTcp,
                TestServiceContainer == null ? "default" : TestServiceContainer.ServiceInstanceName,
                ConfigurationManager.AppSettings["PqlProcessorTestScopeId"]);

            conn.Open();
            return(conn);
        }
Пример #4
0
        /// <summary>
        /// Ctr.
        /// </summary>
        /// <param name="connection">Parent connection</param>
        /// <param name="inputStream">Incoming data stream from server</param>
        /// <param name="holders">Array of holder objects that must be disposed when reader is closed</param>
        public PqlProtocolUtility(PqlDataConnection connection, Stream inputStream, params IDisposable[] holders)
        {
            if (inputStream == null)
            {
                throw new ArgumentNullException("inputStream");
            }

            if (connection == null)
            {
                throw new ArgumentNullException("connection");
            }

            Connection = connection;
            InputStream = inputStream;
            m_holders = holders;
        }
Пример #5
0
        /// <summary>
        /// Ctr.
        /// </summary>
        /// <param name="connection">Parent connection</param>
        /// <param name="inputStream">Incoming data stream from server</param>
        /// <param name="holders">Array of holder objects that must be disposed when reader is closed</param>
        public PqlProtocolUtility(PqlDataConnection connection, Stream inputStream, params IDisposable[] holders)
        {
            if (inputStream == null)
            {
                throw new ArgumentNullException("inputStream");
            }

            if (connection == null)
            {
                throw new ArgumentNullException("connection");
            }

            Connection  = connection;
            InputStream = inputStream;
            m_holders   = holders;
        }
Пример #6
0
 public void TestDummyData()
 {
     try
     {
         using (var conn = new PqlDataConnection())
         {
             conn.ConnectionString = "Server=localhost:5000/default;Initial Catalog=1:1";
             var cmd = conn.CreateCommand();
             for (var i = 0; i < 100000; i++)
             {
                 {
                     //cmd.CommandText = "select field1,field2,field3,field4,field5,field6,field7,field8,field9,field10,field11,field12,field13,field14,field15,field16,field17,field18,field19,field20 from testDoc where field3+2=3 and field4 in ('1',field5) order by field6 desc";
                     cmd.CommandText = "select * from testDoc";
                     ConsumePregeneratedData(cmd, false);
                 }
             }
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
     }
 }
Пример #7
0
 public void TestDummyData()
 {
     try
     {
         using (var conn = new PqlDataConnection())
         {
             conn.ConnectionString = "Server=localhost:5000/default;Initial Catalog=1:1";
             var cmd = conn.CreateCommand();
             for (var i = 0; i < 100000; i++)
             {
                 {
                     //cmd.CommandText = "select field1,field2,field3,field4,field5,field6,field7,field8,field9,field10,field11,field12,field13,field14,field15,field16,field17,field18,field19,field20 from testDoc where field3+2=3 and field4 in ('1',field5) order by field6 desc";
                     cmd.CommandText = "select * from testDoc";
                     ConsumePregeneratedData(cmd, false);
                 }
             }
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
     }
 }
Пример #8
0
        static void GetSomeData(string commandText)
        {
            try
            {
                using (var conn = new PqlDataConnection())
                {
                    conn.ConnectionString = ConnectionString;
                    var cmd = conn.CreateCommand();
                    cmd.CommandText = commandText;

                    var timer1 = Stopwatch.StartNew();
                    var timer2 = Stopwatch.StartNew();
                    var count  = 0;

                    using (var reader = cmd.ExecuteReader())
                    {
                        timer1.Stop();

                        var formatString = CreateFormatString(reader);

                        var normalColor    = Console.ForegroundColor;
                        var nullValueColor = ConsoleColor.DarkGray;

                        while (reader.Read())
                        {
                            count++;

                            Console.WriteLine("---------------------");
                            for (var ordinal = 0; ordinal < reader.FieldCount; ordinal++)
                            {
                                Console.Write(formatString, ordinal, reader.GetName(ordinal), reader.GetFieldType(ordinal).Name);

                                if (reader.IsDBNull(ordinal))
                                {
                                    Console.ForegroundColor = nullValueColor;
                                    Console.WriteLine("<null>");
                                    Console.ForegroundColor = normalColor;
                                }
                                else
                                {
                                    Console.WriteLine(reader.GetValue(ordinal));
                                }

                                if (Console.KeyAvailable)
                                {
                                    Console.ReadKey(true);
                                    throw new Exception("Key pressed, dataset traversal aborted");
                                }
                            }
                        }

                        timer2.Stop();
                    }

                    Console.WriteLine("---------------------");
                    Console.WriteLine("{0} records, {1} ms to initiate, {2} ms to complete",
                                      count, timer1.ElapsedMilliseconds, timer2.ElapsedMilliseconds);
                }
            }
            catch (Exception e)
            {
                var oldColor = Console.ForegroundColor;
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(e.ToString());
                Console.ForegroundColor = oldColor;
            }
        }
Пример #9
0
        static void GetSomeData(string commandText)
        {
            try
            {
                using (var conn = new PqlDataConnection())
                {
                    conn.ConnectionString = ConnectionString;
                    var cmd = conn.CreateCommand();
                    cmd.CommandText = commandText;

                    var timer1 = Stopwatch.StartNew();
                    var timer2 = Stopwatch.StartNew();
                    var count = 0;

                    using (var reader = cmd.ExecuteReader())
                    {
                        timer1.Stop();

                        var formatString = CreateFormatString(reader);

                        var normalColor = Console.ForegroundColor;
                        var nullValueColor = ConsoleColor.DarkGray;

                        while (reader.Read())
                        {
                            count++;

                            Console.WriteLine("---------------------");
                            for (var ordinal = 0; ordinal < reader.FieldCount; ordinal++)
                            {
                                Console.Write(formatString, ordinal, reader.GetName(ordinal), reader.GetFieldType(ordinal).Name);

                                if (reader.IsDBNull(ordinal))
                                {
                                    Console.ForegroundColor = nullValueColor;
                                    Console.WriteLine("<null>");
                                    Console.ForegroundColor = normalColor;
                                }
                                else
                                {
                                    Console.WriteLine(reader.GetValue(ordinal));
                                }

                                if (Console.KeyAvailable)
                                {
                                    Console.ReadKey(true);
                                    throw new Exception("Key pressed, dataset traversal aborted");
                                }
                            }
                        }

                        timer2.Stop();
                    }

                    Console.WriteLine("---------------------");
                    Console.WriteLine("{0} records, {1} ms to initiate, {2} ms to complete",
                        count, timer1.ElapsedMilliseconds, timer2.ElapsedMilliseconds);
                }
            }
            catch (Exception e)
            {
                var oldColor = Console.ForegroundColor;
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(e.ToString());
                Console.ForegroundColor = oldColor;
            }
        }
Пример #10
0
 /// <summary>
 /// Ctr.
 /// </summary>
 /// <param name="pqlDataConnection">Parent connection (optional). May be set later via <see cref="DbConnection"/> property</param>
 public PqlDataCommand(PqlDataConnection pqlDataConnection)
     : this()
 {
     m_connection = pqlDataConnection;
 }
Пример #11
0
        public CGIResponseData GetData(string[] commandline)
        {
            if (commandline == null || commandline.Length != 2)
            {
                return new CGIResponseData("Error in command line. " + UsageText);
            }

            try
            {
                InitThreadContext();

                var commandtype = commandline[0].ToLowerInvariant();
                var commandtext = commandline[1];

                using (var connection = new PqlDataConnection())
                {
                    connection.ConnectionString = ConnectionString;
                    connection.Open();
                    var cmd = connection.CreateCommand();
                    cmd.CommandText = commandtext;

                    if (commandtype == "prepare")
                    {
                        cmd.Prepare();
                        return new CGIResponseData("Prepared.");
                    }

                    if (commandtype == "u")
                    {
                        var raff = cmd.ExecuteNonQuery();
                        return new CGIResponseData("Update complete. Affected records: " + raff);
                    }

                    if (commandtype == "q")
                    {
                        using (var reader = cmd.ExecuteReader())
                        {
                            return new CGIResponseData(reader);
                        }
                    }

                    return new CGIResponseData("Invalid command type: " + commandtype + ". " + UsageText);
                }
            }
            catch (Exception e)
            {
                return new CGIResponseData(e.Message);
            }
        }