Exemple #1
0
        public virtual ParserResult Parse()
        {
            ParserResult res = null;

            using (var conn = new OleDbConnection(command.Connection.ConnectionString))
            {
                var fullSql = string.Format(@"SET FMTONLY ON {0} SET FMTONLY OFF", command.CommandText);

                conn.Open();

                using (var cmdIn = new OleDbCommand(fullSql, conn))
                {
                    try
                    {
                        cmdIn.ExecuteNonQuery();
                        res = ParserResult.NoParsingError();
                    }
                    catch (OleDbException ex)
                    {
                        res = new ParserResult(ex.Message.Split(new string[] { "\r\n" }, System.StringSplitOptions.RemoveEmptyEntries));
                    }
                }

                if (conn.State != System.Data.ConnectionState.Closed)
                {
                    conn.Close();
                }
            }

            return(res);
        }
Exemple #2
0
        public virtual ParserResult Parse()
        {
            ParserResult res = null;

            using (var conn = new OdbcConnection(command.Connection.ConnectionString))
            {
                var fullSql = string.Format(@"SET FMTONLY ON {0} SET FMTONLY OFF", command.CommandText);

                conn.Open();

                using (var cmdIn = new OdbcCommand(fullSql, conn))
                {
                    try
                    {
                        cmdIn.ExecuteNonQuery();
                        res = ParserResult.NoParsingError();
                    }
                    catch (OdbcException ex)
                    {
                        var exList  = new List <string>(ex.Message.Split(new string[] { "[SQL Server]", "\r\n" }, System.StringSplitOptions.RemoveEmptyEntries));
                        var exArray = exList.Where(s => !s.StartsWith("ERROR [")).ToArray();
                        res = new ParserResult(exArray);
                    }
                }

                if (conn.State != System.Data.ConnectionState.Closed)
                {
                    conn.Close();
                }
            }

            return(res);
        }
Exemple #3
0
        public virtual ParserResult Parse()
        {
            Trace.WriteLineIf(NBiTraceSwitch.TraceVerbose, command.CommandText);
            foreach (AdomdParameter param in command.Parameters)
            {
                Trace.WriteLineIf(NBiTraceSwitch.TraceVerbose, string.Format("{0} => {1}", param.ParameterName, param.Value));
            }

            ParserResult res = null;

            using (var connection = new AdomdConnection())
            {
                var connectionString = command.Connection.ConnectionString;
                try
                {
                    connection.ConnectionString = connectionString;
                    connection.Open();
                }
                catch (ArgumentException ex)
                { throw new ConnectionException(ex, connectionString); }

                using (AdomdCommand cmdIn = new AdomdCommand(command.CommandText, connection))
                {
                    foreach (AdomdParameter param in command.Parameters)
                    {
                        var p = param.Clone();
                        cmdIn.Parameters.Add(p);
                    }
                    try
                    {
                        cmdIn.ExecuteReader(CommandBehavior.SchemaOnly);
                        res = ParserResult.NoParsingError();
                    }
                    catch (AdomdException ex)
                    {
                        res = new ParserResult(ex.Message.Split(new string[] { "\r\n" }, System.StringSplitOptions.RemoveEmptyEntries));
                    }
                }

                if (connection.State != System.Data.ConnectionState.Closed)
                {
                    connection.Close();
                }
            }

            return(res);
        }
Exemple #4
0
        public ParserResult Parse()
        {
            ParserResult res = null;

            using (var conn = new SqlConnection(command.Connection.ConnectionString))
            {
                Trace.WriteLineIf(NBiTraceSwitch.TraceVerbose, command.CommandText);
                foreach (SqlParameter param in command.Parameters)
                {
                    Trace.WriteLineIf(NBiTraceSwitch.TraceVerbose, string.Format("{0} => {1}", param.ParameterName, param.Value));
                }

                var fullSql = string.Format(@"SET FMTONLY ON; {0} SET FMTONLY OFF;", command.CommandText);

                try
                {
                    conn.Open();
                }
                catch (SqlException ex)
                {
                    throw new ConnectionException(ex, command.Connection.ConnectionString);
                }


                using (SqlCommand cmdIn = new SqlCommand(fullSql, conn))
                {
                    try
                    {
                        cmdIn.ExecuteNonQuery();
                        res = ParserResult.NoParsingError();
                    }
                    catch (SqlException ex)
                    {
                        res = new ParserResult(ex.Message.Split(new string[] { "\r\n" }, System.StringSplitOptions.RemoveEmptyEntries));
                    }
                }

                if (conn.State != System.Data.ConnectionState.Closed)
                {
                    conn.Close();
                }
            }

            return(res);
        }