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); }
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); }
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); }
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); }