Ticket #5947: minimal_sql2005_syncdb.patch

File minimal_sql2005_syncdb.patch, 2.1 KB (added by adamv, 7 years ago)
  • base.py

     
    2222# We need to use a special Cursor class because adodbapi expects question-mark
    2323# param style, but Django expects "%s". This cursor converts question marks to
    2424# format-string style.
    25 class Cursor(Database.Cursor):
    26     def executeHelper(self, operation, isStoredProcedureCall, parameters=None):
     25class ConvertParamsToQuestionMarkCursor(Database.Cursor):
     26    def _executeHelper(self, operation, isStoredProcedureCall, parameters=None):
    2727        if parameters is not None and "%s" in operation:
    2828            operation = operation.replace("%s", "?")
    29         Database.Cursor.executeHelper(self, operation, isStoredProcedureCall, parameters)
     29        Database.Cursor._executeHelper(self, operation, isStoredProcedureCall, parameters)
    3030
    31 class Connection(Database.Connection):
    32     def cursor(self):
    33         return Cursor(self)
    34 Database.Connection = Connection
    35 
    3631origCVtoP = Database.convertVariantToPython
    3732def variantToPython(variant, adType):
    3833    if type(variant) == bool and adType == 11:
     
    109104            # TODO: Handle DATABASE_PORT.
    110105            conn_string = "PROVIDER=SQLOLEDB;DATA SOURCE=%s;UID=%s;PWD=%s;DATABASE=%s" % (settings.DATABASE_HOST, settings.DATABASE_USER, settings.DATABASE_PASSWORD, settings.DATABASE_NAME)
    111106            self.connection = Database.connect(conn_string)
    112         return self.connection.cursor()
     107        return ConvertParamsToQuestionMarkCursor(self.connection)
  • introspection.py

     
    11def get_table_list(cursor):
    2     raise NotImplementedError
     2    "Returns a list of table names in the current database."
     3    cursor.execute("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'")
     4    return [row[0] for row in cursor.fetchall()]
    35
    46def get_table_description(cursor, table_name):
    57    raise NotImplementedError
Back to Top