Beispiel #1
0
        protected AccessDataProvider(string name, MappingSchema mappingSchema)
            : base(name, mappingSchema)
        {
            SqlProviderFlags.AcceptsTakeAsParameter      = false;
            SqlProviderFlags.IsSkipSupported             = false;
            SqlProviderFlags.IsCountSubQuerySupported    = false;
            SqlProviderFlags.IsInsertOrUpdateSupported   = false;
            SqlProviderFlags.TakeHintsSupported          = TakeHints.Percent;
            SqlProviderFlags.IsCrossJoinSupported        = false;
            SqlProviderFlags.IsInnerJoinAsCrossSupported = false;
            SqlProviderFlags.IsDistinctOrderBySupported  = false;

            SetCharField("DBTYPE_WCHAR", (r, i) => r.GetString(i).TrimEnd(' '));
            SetCharFieldToType <char>("DBTYPE_WCHAR", (r, i) => DataTools.GetChar(r, i));

            SetProviderField <IDataReader, TimeSpan, DateTime>((r, i) => r.GetDateTime(i) - new DateTime(1899, 12, 30));
            SetProviderField <IDataReader, DateTime, DateTime>((r, i) => GetDateTime(r, i));

            _sqlOptimizer = new AccessSqlOptimizer(SqlProviderFlags);

            if (System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator != ".")
            {
                _decimalType = OleDbType.VarChar;
            }
        }
Beispiel #2
0
        protected AccessDataProvider(string name, MappingSchema mappingSchema)
            : base(name, mappingSchema)
        {
            SqlProviderFlags.AcceptsTakeAsParameter    = false;
            SqlProviderFlags.IsSkipSupported           = false;
            SqlProviderFlags.IsCountSubQuerySupported  = false;
            SqlProviderFlags.IsInsertOrUpdateSupported = false;

            SetCharField("DBTYPE_WCHAR", (r, i) => r.GetString(i).TrimEnd());

            SetProviderField <IDataReader, TimeSpan, DateTime>((r, i) => r.GetDateTime(i) - new DateTime(1899, 12, 30));
            SetProviderField <IDataReader, DateTime, DateTime>((r, i) => GetDateTime(r, i));

            _sqlOptimizer = new AccessSqlOptimizer(SqlProviderFlags);
        }
Beispiel #3
0
        public AccessOleDbDataProvider() : base(ProviderName.Access, MappingSchemaInstance, OleDbProviderAdapter.GetInstance())
        {
            SqlProviderFlags.AcceptsTakeAsParameter           = false;
            SqlProviderFlags.IsSkipSupported                  = false;
            SqlProviderFlags.IsCountSubQuerySupported         = false;
            SqlProviderFlags.IsInsertOrUpdateSupported        = false;
            SqlProviderFlags.TakeHintsSupported               = TakeHints.Percent;
            SqlProviderFlags.IsCrossJoinSupported             = false;
            SqlProviderFlags.IsInnerJoinAsCrossSupported      = false;
            SqlProviderFlags.IsDistinctOrderBySupported       = false;
            SqlProviderFlags.IsDistinctSetOperationsSupported = false;
            SqlProviderFlags.IsParameterOrderDependent        = true;
            SqlProviderFlags.IsUpdateFromSupported            = false;
            SqlProviderFlags.DefaultMultiQueryIsolationLevel  = IsolationLevel.Unspecified;

            SetCharField("DBTYPE_WCHAR", (r, i) => r.GetString(i).TrimEnd(' '));
            SetCharFieldToType <char>("DBTYPE_WCHAR", DataTools.GetCharExpression);

            SetProviderField <DbDataReader, TimeSpan, DateTime>((r, i) => r.GetDateTime(i) - new DateTime(1899, 12, 30));

            _sqlOptimizer = new AccessSqlOptimizer(SqlProviderFlags);
        }