public CommandBuilder(string text, DatabaseSchema schema, int bulkIndex)
 {
     _text = new StringBuilder(text);
     _schemaProvider = schema.SchemaProvider;
     _customInterfaceProvider = schema.ProviderHelper;
     _parameterSuffix = (bulkIndex >= 0) ? "_c" + bulkIndex : string.Empty;
 }
 public OracleProcedureExecutor(OracleConnectionProvider connectionProvider, ObjectName procedureName)
 {
     _connectionProvider = connectionProvider;
     _schema = DatabaseSchema.Get(_connectionProvider, new ProviderHelper());
     _procedureName = procedureName;
     _executeImpl = ExecuteReader;
 }
Example #3
0
 protected override void OnSetup()
 {
     var settingsKeys = ((IDictionary<string, object>) Settings).Keys;
     if (settingsKeys.Contains("ConnectionString"))
     {
         if (settingsKeys.Contains("ProviderName"))
         {
             _connectionProvider = ProviderHelper.GetProviderByConnectionString(Settings.ConnectionString,
                                                                                Settings.ProviderName);
         }
         else
         {
             _connectionProvider = ProviderHelper.GetProviderByConnectionString(Settings.ConnectionString);
         }
     }
     else if (settingsKeys.Contains("Filename"))
     {
         _connectionProvider = ProviderHelper.GetProviderByFilename(Settings.Filename);
     }
     else if (settingsKeys.Contains("ConnectionName"))
     {
         _connectionProvider = ProviderHelper.GetProviderByConnectionName(Settings.ConnectionName);
     }
     _schema = DatabaseSchema.Get(_connectionProvider, _providerHelper);
     _relatedFinder = new Lazy<AdoAdapterRelatedFinder>(CreateRelatedFinder);
     _commandOptimizer = ProviderHelper.GetCustomProvider<CommandOptimizer>(_connectionProvider) ??
                         new CommandOptimizer();
 }
Example #4
0
 public QueryBuilder(AdoAdapter adoAdapter, int bulkIndex)
 {
     _adoAdapter = adoAdapter;
     _bulkIndex = bulkIndex;
     _schema = _adoAdapter.GetSchema();
     _commandBuilder = new CommandBuilder(_schema, _bulkIndex);
     _simpleReferenceFormatter = new SimpleReferenceFormatter(_schema, _commandBuilder);
 }
Example #5
0
 internal AdoAdapter(IConnectionProvider connectionProvider) : this()
 {
     _connectionProvider = connectionProvider;
     _schema = DatabaseSchema.Get(_connectionProvider, _providerHelper);
     _relatedFinder = new Lazy<AdoAdapterRelatedFinder>(CreateRelatedFinder);
     _commandOptimizer = ProviderHelper.GetCustomProvider<CommandOptimizer>(_connectionProvider) ??
                         new CommandOptimizer();
 }
Example #6
0
 public CommandBuilder(string text, DatabaseSchema schema, IEnumerable<KeyValuePair<ParameterTemplate, Object>> parameters)
     : this(text, schema, -1)
 {
     foreach (var kvp in parameters)
     {
         _parameters.Add(kvp.Key, kvp.Value);
     }
 }
 protected QueryBuilderBase(AdoAdapter adapter, int bulkIndex, IFunctionNameConverter functionNameConverter)
 {
     _adoAdapter = adapter;
     _bulkIndex = bulkIndex;
     _schema = _adoAdapter.GetSchema();
     _commandBuilder = new CommandBuilder(_schema, _bulkIndex);
     _simpleReferenceFormatter = new SimpleReferenceFormatter(_schema, _commandBuilder, functionNameConverter);
 }
Example #8
0
 private AdoAdapter(IConnectionProvider connectionProvider, AdoAdapterFinder finder, ProviderHelper providerHelper,
     Lazy<AdoAdapterRelatedFinder> relatedFinder, DatabaseSchema schema)
 {
     _connectionProvider = connectionProvider;
     _finder = finder;
     _providerHelper = providerHelper;
     _relatedFinder = relatedFinder;
     _schema = schema;
 }
 public ExpressionFormatter(ICommandBuilder commandBuilder, DatabaseSchema schema)
 {
     _commandBuilder = commandBuilder;
     _schema = schema;
     _expressionFormatters = new Dictionary<SimpleExpressionType, Func<SimpleExpression, string>>
           {
               {SimpleExpressionType.And, LogicalExpressionToWhereClause},
               {SimpleExpressionType.Or, LogicalExpressionToWhereClause},
               {SimpleExpressionType.Equal, EqualExpressionToWhereClause},
               {SimpleExpressionType.NotEqual, NotEqualExpressionToWhereClause},
               {SimpleExpressionType.GreaterThan, expr => BinaryExpressionToWhereClause(expr, ">")},
               {SimpleExpressionType.GreaterThanOrEqual, expr => BinaryExpressionToWhereClause(expr, ">=")},
               {SimpleExpressionType.LessThan, expr => BinaryExpressionToWhereClause(expr, "<")},
               {SimpleExpressionType.LessThanOrEqual, expr => BinaryExpressionToWhereClause(expr, "<=")},
           };
 }
Example #10
0
        private IEnumerable<IDbDataParameter> CreateParameters(DatabaseSchema schema, IDbCommand command, IEnumerable<object> parameterValues)
        {
            var fixedParameters = _parameters.Where(pt => pt.Type == ParameterType.FixedValue).ToArray();
            if ((!parameterValues.Any(pv => pv != null)) && fixedParameters.Length == 0) yield break;
            parameterValues = parameterValues.Where(pv => pv != null);

            foreach (var fixedParameter in fixedParameters)
            {
                yield return CreateParameter(command, fixedParameter, fixedParameter.FixedValue);
            }
            
            var columnParameters = _parameters.Where(pt => pt.Type != ParameterType.FixedValue).ToArray();

            foreach (var parameter in parameterValues.Any(o => o is IEnumerable && !(o is string)) || parameterValues.Any(o => o is IRange)
                       ? parameterValues.SelectMany((v, i) => CreateParameters(schema, command, columnParameters[i], v))
                       : parameterValues.Select((v, i) => CreateParameter(command, columnParameters[i], v)))
            {
                yield return parameter;
            }
        }
Example #11
0
 private IEnumerable<IDbDataParameter> CreateParameters(DatabaseSchema schema, IDbCommand command, ParameterTemplate parameterTemplate, object value)
 {
     if (value == null || TypeHelper.IsKnownType(value.GetType()) || parameterTemplate.DbType == DbType.Binary)
     {
         yield return CreateParameter(command, parameterTemplate, value);
     }
     else
     {
         var range = value as IRange;
         if (range != null)
         {
             yield return CreateParameter(command, parameterTemplate, range.Start, "_start");
             yield return CreateParameter(command, parameterTemplate, range.End, "_end");
             new CommandBuilder(schema).SetBetweenInCommandText(command, parameterTemplate.Name);
         }
         else
         {
             var list = value as IEnumerable;
             if (list != null)
             {
                 var builder = new StringBuilder();
                 var array = list.Cast<object>().ToArray();
                 for (int i = 0; i < array.Length; i++)
                 {
                     builder.AppendFormat(",{0}_{1}", parameterTemplate.Name, i);
                     yield return CreateParameter(command, parameterTemplate, array[i], "_" + i);
                 }
                 RewriteSqlEqualityToInClause(schema, command, parameterTemplate, builder);
             }
             else
             {
                 yield return CreateParameter(command, parameterTemplate, value);
             }
         }
     }
 }
Example #12
0
 public QueryBuilder(AdoAdapter adoAdapter)
 {
     _adoAdapter = adoAdapter;
     _schema = _adoAdapter.GetSchema();
 }
Example #13
0
 public Joiner(JoinType joinType, DatabaseSchema schema)
 {
     if (schema == null) throw new ArgumentNullException("schema");
     _joinType = joinType;
     _schema = schema;
 }
Example #14
0
 public Joiner(DatabaseSchema schema)
     : this(JoinType.Outer, schema)
 {
 }
Example #15
0
 internal AdoAdapter(IConnectionProvider connectionProvider)
 {
     _connectionProvider = connectionProvider;
     _schema = DatabaseSchema.Get(_connectionProvider);
     _relatedFinder = new Lazy<AdoAdapterRelatedFinder>(CreateRelatedFinder);
 }
 public ExpressionFormatter(ICommandBuilder commandBuilder, DatabaseSchema schema)
 {
     _commandBuilder = commandBuilder;
     _schema = schema;
     _simpleReferenceFormatter = new SimpleReferenceFormatter(_schema, _commandBuilder);
 }
Example #17
0
 public FindHelper(DatabaseSchema schema)
 {
     _schema = schema;
     _commandBuilder = new CommandBuilder(schema.SchemaProvider);
     _expressionFormatter = new ExpressionFormatter(_commandBuilder, _schema);
 }
Example #18
0
 public GetHelper(DatabaseSchema schema)
 {
     _schema = schema;
     _commandBuilder = new CommandBuilder(schema);
 }
 public ExpressionFormatter(ICommandBuilder commandBuilder, DatabaseSchema schema)
 {
     _commandBuilder = commandBuilder;
     _schema = schema;
 }
 public CommandBuilder(DatabaseSchema schema) : this(schema, -1)
 {
 }
Example #21
0
 public DatabaseSchema GetSchema()
 {
     return _schema ?? (_schema = DatabaseSchema.Get(_connectionProvider, _providerHelper));
 }
Example #22
0
 public QueryBuilder(AdoAdapter adoAdapter)
 {
     _adoAdapter = adoAdapter;
     _schema = _adoAdapter.GetSchema();
     _simpleReferenceFormatter = new SimpleReferenceFormatter(_schema);
 }
Example #23
0
 protected override void OnReset()
 {
     DatabaseSchema.ClearCache();
     _schema = DatabaseSchema.Get(_connectionProvider, _providerHelper);
 }
Example #24
0
 public DeleteHelper(DatabaseSchema schema)
 {
     _schema = schema;
     _commandBuilder = new CommandBuilder();
     _expressionFormatter = new ExpressionFormatter(_commandBuilder, _schema);
 }
 public AdoAdapter(IConnectionProvider connectionProvider)
 {
     _connectionProvider = connectionProvider;
     _schema = DatabaseSchema.Get(_connectionProvider);
 }
Example #26
0
 private static void RewriteSqlEqualityToInClause(DatabaseSchema schema, IDbCommand command, ParameterTemplate parameterTemplate, StringBuilder builder)
 {
     if (command.CommandText.Contains("!= " + parameterTemplate.Name))
     {
         command.CommandText = command.CommandText.Replace("!= " + parameterTemplate.Name,
                                                           schema.Operators.NotIn + " (" +
                                                           builder.ToString().Substring(1) +
                                                           ")");
     }
     else
     {
         command.CommandText = command.CommandText.Replace("= " + parameterTemplate.Name,
                                                           schema.Operators.In + " (" +
                                                           builder.ToString().Substring(1) +
                                                           ")");
     }
 }