diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-05-09 16:34:10 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-05-09 16:34:10 +0000 |
commit | 4a6afd469fad170868554bf28578849bf3dfd5dd (patch) | |
tree | b396edc33d567ae19dd244e87137296450467725 /lib/sqlalchemy/databases/mssql.py | |
parent | 46b7c9dc57a38d5b9e44a4723dad2ad8ec57baca (diff) | |
download | sqlalchemy-4a6afd469fad170868554bf28578849bf3dfd5dd.tar.gz |
r4695 merged to trunk; trunk now becomes 0.5.
0.4 development continues at /sqlalchemy/branches/rel_0_4
Diffstat (limited to 'lib/sqlalchemy/databases/mssql.py')
-rw-r--r-- | lib/sqlalchemy/databases/mssql.py | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/lib/sqlalchemy/databases/mssql.py b/lib/sqlalchemy/databases/mssql.py index ab5a96871..4e129952f 100644 --- a/lib/sqlalchemy/databases/mssql.py +++ b/lib/sqlalchemy/databases/mssql.py @@ -40,7 +40,7 @@ Known issues / TODO: import datetime, operator, re, sys -from sqlalchemy import sql, schema, exceptions, util +from sqlalchemy import sql, schema, exc, util from sqlalchemy.sql import compiler, expression, operators as sqlops, functions as sql_functions from sqlalchemy.engine import default, base from sqlalchemy import types as sqltypes @@ -440,7 +440,7 @@ class MSSQLDialect(default.DefaultDialect): dialect_cls = dialect_mapping[module_name] return dialect_cls.import_dbapi() except KeyError: - raise exceptions.InvalidRequestError("Unsupported MSSQL module '%s' requested (must be adodbpi, pymssql or pyodbc)" % module_name) + raise exc.InvalidRequestError("Unsupported MSSQL module '%s' requested (must be adodbpi, pymssql or pyodbc)" % module_name) else: for dialect_cls in [MSSQLDialect_pyodbc, MSSQLDialect_pymssql, MSSQLDialect_adodbapi]: try: @@ -512,7 +512,7 @@ class MSSQLDialect(default.DefaultDialect): self.context.rowcount = c.rowcount c.DBPROP_COMMITPRESERVE = "Y" except Exception, e: - raise exceptions.DBAPIError.instance(statement, parameters, e) + raise exc.DBAPIError.instance(statement, parameters, e) def table_names(self, connection, schema): from sqlalchemy.databases import information_schema as ischema @@ -602,14 +602,14 @@ class MSSQLDialect(default.DefaultDialect): elif coltype in (MSNVarchar, AdoMSNVarchar) and charlen == -1: args[0] = None coltype = coltype(*args) - colargs= [] + colargs = [] if default is not None: colargs.append(schema.PassiveDefault(sql.text(default))) table.append_column(schema.Column(name, coltype, nullable=nullable, autoincrement=False, *colargs)) if not found_table: - raise exceptions.NoSuchTableError(table.name) + raise exc.NoSuchTableError(table.name) # We also run an sp_columns to check for identity columns: cursor = connection.execute("sp_columns @table_name = '%s', @table_owner = '%s'" % (table.name, current_schema)) @@ -633,8 +633,8 @@ class MSSQLDialect(default.DefaultDialect): row = cursor.fetchone() cursor.close() if not row is None: - ic.sequence.start=int(row[0]) - ic.sequence.increment=int(row[1]) + ic.sequence.start = int(row[0]) + ic.sequence.increment = int(row[1]) except: # ignoring it, works just like before pass @@ -684,13 +684,15 @@ class MSSQLDialect(default.DefaultDialect): if rfknm != fknm: if fknm: - table.append_constraint(schema.ForeignKeyConstraint(scols, [_gen_fkref(table,s,t,c) for s,t,c in rcols], fknm)) + table.append_constraint(schema.ForeignKeyConstraint(scols, [_gen_fkref(table, s, t, c) for s, t, c in rcols], fknm)) fknm, scols, rcols = (rfknm, [], []) - if (not scol in scols): scols.append(scol) - if (not (rschema, rtbl, rcol) in rcols): rcols.append((rschema, rtbl, rcol)) + if not scol in scols: + scols.append(scol) + if not (rschema, rtbl, rcol) in rcols: + rcols.append((rschema, rtbl, rcol)) if fknm and scols: - table.append_constraint(schema.ForeignKeyConstraint(scols, [_gen_fkref(table,s,t,c) for s,t,c in rcols], fknm)) + table.append_constraint(schema.ForeignKeyConstraint(scols, [_gen_fkref(table, s, t, c) for s, t, c in rcols], fknm)) class MSSQLDialect_pymssql(MSSQLDialect): @@ -895,7 +897,7 @@ class MSSQLCompiler(compiler.DefaultCompiler): if select._limit: s += "TOP %s " % (select._limit,) if select._offset: - raise exceptions.InvalidRequestError('MSSQL does not support LIMIT with an offset') + raise exc.InvalidRequestError('MSSQL does not support LIMIT with an offset') return s return compiler.DefaultCompiler.get_select_precolumns(self, select) @@ -1005,7 +1007,7 @@ class MSSQLCompiler(compiler.DefaultCompiler): class MSSQLSchemaGenerator(compiler.SchemaGenerator): def get_column_specification(self, column, **kwargs): - colspec = self.preparer.format_column(column) + " " + column.type.dialect_impl(self.dialect, _for_ddl=column).get_col_spec() + colspec = self.preparer.format_column(column) + " " + column.type.dialect_impl(self.dialect).get_col_spec() # install a IDENTITY Sequence if we have an implicit IDENTITY column if (not getattr(column.table, 'has_sequence', False)) and column.primary_key and \ |