def __init__(self, *args, **kwargs): super(DatabaseWrapper, self).__init__(*args, **kwargs) if 'OPTIONS' in self.settings_dict: self.MARS_Connection = self.settings_dict['OPTIONS'].get( 'MARS_Connection', False) self.datefirst = self.settings_dict['OPTIONS'].get('datefirst', 7) self.unicode_results = self.settings_dict['OPTIONS'].get( 'unicode_results', False) if _DJANGO_VERSION >= 13: self.features = DatabaseFeatures(self) else: self.features = DatabaseFeatures() self.ops = DatabaseOperations(self) self.client = DatabaseClient(self) self.creation = DatabaseCreation(self) self.introspection = DatabaseIntrospection(self) if _DJANGO_VERSION >= 12: self.validation = BaseDatabaseValidation(self) else: self.validation = BaseDatabaseValidation() self.connection = None
def __init__(self, *args, **kwargs): super(DatabaseWrapper, self).__init__(*args, **kwargs) opts = self.settings_dict["OPTIONS"] # capability for multiple result sets or cursors self.supports_mars = False self.open_cursor = None # Some drivers need unicode encoded as UTF8. If this is left as # None, it will be determined based on the driver, namely it'll be # False if the driver is a windows driver and True otherwise. # # However, recent versions of FreeTDS and pyodbc (0.91 and 3.0.6 as # of writing) are perfectly okay being fed unicode, which is why # this option is configurable. if 'driver_needs_utf8' in opts: self.driver_charset = 'utf-8' else: self.driver_charset = opts.get('driver_charset', None) # data type compatibility to databases created by old django-pyodbc self.use_legacy_datetime = opts.get('use_legacy_datetime', False) # interval to wait for recovery from network error interval = opts.get('connection_recovery_interval_msec', 0.0) self.connection_recovery_interval_msec = float(interval) / 1000 # make lookup operators to be collation-sensitive if needed collation = opts.get('collation', None) if collation: self.operators = dict(self.__class__.operators) ops = {} for op in self.operators: sql = self.operators[op] if sql.startswith('LIKE '): ops[op] = '%s COLLATE %s' % (sql, collation) self.operators.update(ops) self.features = DatabaseFeatures(self) self.ops = DatabaseOperations(self) self.client = DatabaseClient(self) self.creation = DatabaseCreation(self) self.introspection = DatabaseIntrospection(self) self.validation = BaseDatabaseValidation(self)