亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mssql.py

?? SQLAlchemy. 經典的Python ORM框架。學習必看。
?? PY
?? 第 1 頁 / 共 3 頁
字號:
    def do_rollback(self, connection):        # pymssql throws an error on repeated rollbacks. Ignore it.        # TODO: this is normal behavior for most DBs.  are we sure we want to ignore it ?        try:            connection.rollback()        except:            pass    def create_connect_args(self, url):        r = super(MSSQLDialect_pymssql, self).create_connect_args(url)        if hasattr(self, 'query_timeout'):            self.dbapi._mssql.set_query_timeout(self.query_timeout)        return r    def make_connect_string(self, keys):        if keys.get('port'):            # pymssql expects port as host:port, not a separate arg            keys['host'] = ''.join([keys.get('host', ''), ':', str(keys['port'])])            del keys['port']        return [[], keys]    def is_disconnect(self, e):        return isinstance(e, self.dbapi.DatabaseError) and "Error 10054" in str(e)##    This code is leftover from the initial implementation, for reference##    def do_begin(self, connection):##        """implementations might want to put logic here for turning autocommit on/off, etc."""##        pass##    def do_rollback(self, connection):##        """implementations might want to put logic here for turning autocommit on/off, etc."""##        try:##            # connection.rollback() for pymmsql failed sometimes--the begin tran doesn't show up##            # this is a workaround that seems to be handle it.##            r = self.raw_connection(connection)##            r.query("if @@trancount > 0 rollback tran")##            r.fetch_array()##            r.query("begin tran")##            r.fetch_array()##        except:##            pass##    def do_commit(self, connection):##        """implementations might want to put logic here for turning autocommit on/off, etc.##            do_commit is set for pymmsql connections--ADO seems to handle transactions without any issue##        """##        # ADO Uses Implicit Transactions.##        # This is very pymssql specific.  We use this instead of its commit, because it hangs on failed rollbacks.##        # By using the "if" we don't assume an open transaction--much better.##        r = self.raw_connection(connection)##        r.query("if @@trancount > 0 commit tran")##        r.fetch_array()##        r.query("begin tran")##        r.fetch_array()class MSSQLDialect_pyodbc(MSSQLDialect):    supports_sane_rowcount = False    supports_sane_multi_rowcount = False    # PyODBC unicode is broken on UCS-4 builds    supports_unicode = sys.maxunicode == 65535    supports_unicode_statements = supports_unicode    def __init__(self, **params):        super(MSSQLDialect_pyodbc, self).__init__(**params)        # whether use_scope_identity will work depends on the version of pyodbc        try:            import pyodbc            self.use_scope_identity = hasattr(pyodbc.Cursor, 'nextset')        except:            pass    def import_dbapi(cls):        import pyodbc as module        return module    import_dbapi = classmethod(import_dbapi)    colspecs = MSSQLDialect.colspecs.copy()    if supports_unicode:        colspecs[sqltypes.Unicode] = AdoMSNVarchar    colspecs[sqltypes.Date] = MSDate_pyodbc    colspecs[sqltypes.DateTime] = MSDateTime_pyodbc    ischema_names = MSSQLDialect.ischema_names.copy()    if supports_unicode:        ischema_names['nvarchar'] = AdoMSNVarchar    ischema_names['smalldatetime'] = MSDate_pyodbc    ischema_names['datetime'] = MSDateTime_pyodbc    def make_connect_string(self, keys):        if 'dsn' in keys:            connectors = ['dsn=%s' % keys['dsn']]        else:            connectors = ["Driver={SQL Server}"]            if 'port' in keys:                connectors.append('Server=%s,%d' % (keys.get('host'), keys.get('port')))            else:                connectors.append('Server=%s' % keys.get('host'))            connectors.append("Database=%s" % keys.get("database"))        user = keys.get("user")        if user:            connectors.append("UID=%s" % user)            connectors.append("PWD=%s" % keys.get("password", ""))        else:            connectors.append ("TrustedConnection=Yes")        return [[";".join (connectors)], {}]    def is_disconnect(self, e):        return isinstance(e, self.dbapi.Error) and '[08S01]' in str(e)    def create_execution_context(self, *args, **kwargs):        return MSSQLExecutionContext_pyodbc(self, *args, **kwargs)    def do_execute(self, cursor, statement, parameters, context=None, **kwargs):        super(MSSQLDialect_pyodbc, self).do_execute(cursor, statement, parameters, context=context, **kwargs)        if context and context.HASIDENT and (not context.IINSERT) and context.dialect.use_scope_identity:            import pyodbc            # Fetch the last inserted id from the manipulated statement            # We may have to skip over a number of result sets with no data (due to triggers, etc.)            while True:                try:                    row = cursor.fetchone()                    break                except pyodbc.Error, e:                    cursor.nextset()            context._last_inserted_ids = [int(row[0])]class MSSQLDialect_adodbapi(MSSQLDialect):    supports_sane_rowcount = True    supports_sane_multi_rowcount = True    supports_unicode = sys.maxunicode == 65535    supports_unicode_statements = True    def import_dbapi(cls):        import adodbapi as module        return module    import_dbapi = classmethod(import_dbapi)    colspecs = MSSQLDialect.colspecs.copy()    colspecs[sqltypes.Unicode] = AdoMSNVarchar    colspecs[sqltypes.DateTime] = MSDateTime_adodbapi    ischema_names = MSSQLDialect.ischema_names.copy()    ischema_names['nvarchar'] = AdoMSNVarchar    ischema_names['datetime'] = MSDateTime_adodbapi    def make_connect_string(self, keys):        connectors = ["Provider=SQLOLEDB"]        if 'port' in keys:            connectors.append ("Data Source=%s, %s" % (keys.get("host"), keys.get("port")))        else:            connectors.append ("Data Source=%s" % keys.get("host"))        connectors.append ("Initial Catalog=%s" % keys.get("database"))        user = keys.get("user")        if user:            connectors.append("User Id=%s" % user)            connectors.append("Password=%s" % keys.get("password", ""))        else:            connectors.append("Integrated Security=SSPI")        return [[";".join (connectors)], {}]    def is_disconnect(self, e):        return isinstance(e, self.dbapi.adodbapi.DatabaseError) and "'connection failure'" in str(e)dialect_mapping = {    'pymssql':  MSSQLDialect_pymssql,    'pyodbc':   MSSQLDialect_pyodbc,    'adodbapi': MSSQLDialect_adodbapi    }class MSSQLCompiler(compiler.DefaultCompiler):    operators = compiler.OPERATORS.copy()    operators[sqlops.concat_op] = '+'    functions = compiler.DefaultCompiler.functions.copy()    functions.update (        {            sql_functions.now: 'CURRENT_TIMESTAMP'        }    )        def __init__(self, *args, **kwargs):        super(MSSQLCompiler, self).__init__(*args, **kwargs)        self.tablealiases = {}    def get_select_precolumns(self, select):        """ MS-SQL puts TOP, it's version of LIMIT here """        if not self.dialect.has_window_funcs:            s = select._distinct and "DISTINCT " or ""            if select._limit:                s += "TOP %s " % (select._limit,)            if select._offset:                raise exceptions.InvalidRequestError('MSSQL does not support LIMIT with an offset')            return s        return compiler.DefaultCompiler.get_select_precolumns(self, select)    def limit_clause(self, select):        # Limit in mssql is after the select keyword        return ""    def visit_select(self, select, **kwargs):        """Look for ``LIMIT`` and OFFSET in a select statement, and if        so tries to wrap it in a subquery with ``row_number()`` criterion.        """        if self.dialect.has_window_funcs and (not getattr(select, '_mssql_visit', None)) and (select._limit is not None or select._offset is not None):            # to use ROW_NUMBER(), an ORDER BY is required.            orderby = self.process(select._order_by_clause)            if not orderby:                orderby = list(select.oid_column.proxies)[0]                orderby = self.process(orderby)            _offset = select._offset            _limit = select._limit            select._mssql_visit = True            select = select.column(sql.literal_column("ROW_NUMBER() OVER (ORDER BY %s)" % orderby).label("mssql_rn")).order_by(None).alias()            limitselect = sql.select([c for c in select.c if c.key!='mssql_rn'])            if _offset is not None:                limitselect.append_whereclause("mssql_rn>=%d" % _offset)                if _limit is not None:                    limitselect.append_whereclause("mssql_rn<=%d" % (_limit + _offset))            else:                limitselect.append_whereclause("mssql_rn<=%d" % _limit)            return self.process(limitselect, iswrapper=True, **kwargs)        else:            return compiler.DefaultCompiler.visit_select(self, select, **kwargs)    def _schema_aliased_table(self, table):        if getattr(table, 'schema', None) is not None:            if table not in self.tablealiases:                self.tablealiases[table] = table.alias()            return self.tablealiases[table]        else:            return None    def visit_table(self, table, mssql_aliased=False, **kwargs):        if mssql_aliased:            return super(MSSQLCompiler, self).visit_table(table, **kwargs)        # alias schema-qualified tables        alias = self._schema_aliased_table(table)        if alias is not None:            return self.process(alias, mssql_aliased=True, **kwargs)        else:            return super(MSSQLCompiler, self).visit_table(table, **kwargs)    def visit_alias(self, alias, **kwargs):        # translate for schema-qualified table aliases        self.tablealiases[alias.original] = alias        kwargs['mssql_aliased'] = True        return super(MSSQLCompiler, self).visit_alias(alias, **kwargs)    def visit_column(self, column, **kwargs):        if column.table is not None and not self.isupdate and not self.isdelete:            # translate for schema-qualified table aliases            t = self._schema_aliased_table(column.table)            if t is not None:                return self.process(expression._corresponding_column_or_error(t, column))        else:            kwargs['use_schema'] = True        return super(MSSQLCompiler, self).visit_column(column, **kwargs)    def visit_binary(self, binary, **kwargs):        """Move bind parameters to the right-hand side of an operator, where possible."""        if isinstance(binary.left, expression._BindParamClause) and binary.operator == operator.eq:            return self.process(expression._BinaryExpression(binary.right, binary.left, binary.operator), **kwargs)        else:            return super(MSSQLCompiler, self).visit_binary(binary, **kwargs)    def label_select_column(self, select, column, asfrom):        if isinstance(column, expression._Function):            return column.label(None)        else:            return super(MSSQLCompiler, self).label_select_column(select, column, asfrom)    function_rewrites =  {'current_date': 'getdate',                          'length':     'len',                          }    def visit_function(self, func, **kwargs):        func.name = self.function_rewrites.get(func.name, func.name)        return super(MSSQLCompiler, self).visit_function(func, **kwargs)    def for_update_clause(self, select):        # "FOR UPDATE" is only allowed on "DECLARE CURSOR" which SQLAlchemy doesn't use        return ''    def order_by_clause(self, select):        order_by = self.process(select._order_by_clause)        # MSSQL only allows ORDER BY in subqueries if there is a LIMIT        if order_by and (not self.is_subquery(select) or select._limit):            return " ORDER BY " + order_by        else:            return ""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()        # install a IDENTITY Sequence if we have an implicit IDENTITY column        if (not getattr(column.table, 'has_sequence', False)) and column.primary_key and \                column.autoincrement and isinstance(column.type, sqltypes.Integer) and not column.foreign_keys:            if column.default is None or (isinstance(column.default, schema.Sequence) and column.default.optional):                column.sequence = schema.Sequence(column.name + '_seq')        if not column.nullable:            colspec += " NOT NULL"        if hasattr(column, 'sequence'):            column.table.has_sequence = column            colspec += " IDENTITY(%s,%s)" % (column.sequence.start or 1, column.sequence.increment or 1)        else:            default = self.get_column_default_string(column)            if default is not None:                colspec += " DEFAULT " + default        return colspecclass MSSQLSchemaDropper(compiler.SchemaDropper):    def visit_index(self, index):        self.append("\nDROP INDEX %s.%s" % (            self.preparer.quote_identifier(index.table.name),            self.preparer.quote_identifier(index.name)            ))        self.execute()class MSSQLDefaultRunner(base.DefaultRunner):    # TODO: does ms-sql have standalone sequences ?    passclass MSSQLIdentifierPreparer(compiler.IdentifierPreparer):    reserved_words = compiler.IdentifierPreparer.reserved_words.union(MSSQL_RESERVED_WORDS)    def __init__(self, dialect):        super(MSSQLIdentifierPreparer, self).__init__(dialect, initial_quote='[', final_quote=']')    def _escape_identifier(self, value):        #TODO: determin MSSQL's escapeing rules        return valuedialect = MSSQLDialectdialect.statement_compiler = MSSQLCompilerdialect.schemagenerator = MSSQLSchemaGeneratordialect.schemadropper = MSSQLSchemaDropperdialect.preparer = MSSQLIdentifierPreparerdialect.defaultrunner = MSSQLDefaultRunner

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合久久鬼色中文字| 91麻豆精品国产91久久久资源速度| 日韩成人dvd| 天天综合色天天综合色h| 亚洲精品免费在线观看| 亚洲精品视频观看| 伊人色综合久久天天人手人婷| 亚洲天堂2016| 亚洲国产一区二区a毛片| 亚洲国产毛片aaaaa无费看| 亚洲老妇xxxxxx| 一区二区国产视频| 亚洲国产精品人人做人人爽| 亚洲一二三级电影| 人人狠狠综合久久亚洲| 久久国产精品一区二区| 国产一区二区影院| 99热精品一区二区| 欧美在线一二三四区| 制服丝袜一区二区三区| 久久精品男人的天堂| 亚洲三级久久久| 日本少妇一区二区| 国产丶欧美丶日本不卡视频| 91啪亚洲精品| 欧美一级生活片| 国产精品无圣光一区二区| 亚洲精品国产a| 麻豆精品国产传媒mv男同| 成人久久18免费网站麻豆 | 日韩免费看的电影| 欧美国产日韩精品免费观看| 亚洲一区欧美一区| 国产麻豆精品视频| 欧美猛男超大videosgay| 欧美成人精品二区三区99精品| 国产午夜精品在线观看| 亚洲第一福利一区| 成人免费视频网站在线观看| 欧美日韩精品一区二区三区 | 一区二区视频在线| 精品一区精品二区高清| 99re这里只有精品首页| 精品久久久久av影院 | 男男视频亚洲欧美| 91麻豆免费在线观看| 日韩精品一区二区三区swag| 亚洲综合色网站| 成人亚洲一区二区一| 日韩免费一区二区三区在线播放| 亚洲欧美国产77777| 国产一本一道久久香蕉| 欧美一区二区三区免费大片| 一区二区免费看| 成人网男人的天堂| 久久综合资源网| 午夜电影网亚洲视频| 91麻豆产精品久久久久久| 国产欧美精品一区二区三区四区| 日本视频一区二区三区| 欧美三级电影网| 亚洲精选视频在线| 成人av在线一区二区| 久久久国产综合精品女国产盗摄| 蜜臀a∨国产成人精品| 欧美日韩精品福利| 香蕉av福利精品导航| 欧美在线观看禁18| 亚洲美女少妇撒尿| 91麻豆免费在线观看| 亚洲少妇中出一区| 色综合天天综合色综合av| 中文字幕一区二区三区在线播放| 国产一区在线精品| 2023国产精华国产精品| 久久99国产精品免费网站| 日韩一卡二卡三卡四卡| 免费观看一级欧美片| 91精品国产一区二区| 麻豆91在线观看| 久久综合99re88久久爱| 国产成人免费xxxxxxxx| 国产精品萝li| 色国产精品一区在线观看| 亚洲品质自拍视频| 亚洲一二三四在线| 成人一区二区三区视频| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 亚洲精品成人天堂一二三| 91丨九色丨蝌蚪富婆spa| 亚洲一区视频在线观看视频| 欧美日韩国产综合一区二区三区| 日韩精品1区2区3区| 欧美一区二区三区性视频| 久久99这里只有精品| 久久亚洲捆绑美女| 播五月开心婷婷综合| 一区二区三区高清不卡| 这里只有精品99re| 国产尤物一区二区在线| 亚洲你懂的在线视频| 91麻豆精品国产综合久久久久久| 蜜桃av噜噜一区| 国产亚洲欧美日韩在线一区| 91视频免费观看| 久久99九九99精品| 亚洲天堂2014| 日韩欧美一级在线播放| 成人高清免费观看| 午夜久久久影院| 国产欧美日韩在线| 欧美日韩亚州综合| 国产精品18久久久久| 亚洲综合免费观看高清完整版| 日韩视频免费观看高清完整版在线观看| 韩国av一区二区三区| 亚洲自拍偷拍欧美| 久久精品一区二区| 欧美日韩一区二区三区高清| 国产成人精品免费网站| 午夜精品久久久久久久久久久| 国产欧美一区二区精品性色超碰 | 日韩国产在线一| 国产精品家庭影院| 精品国产乱码久久久久久闺蜜| 91丨九色丨国产丨porny| 加勒比av一区二区| 日韩成人免费在线| 一区二区三区精品视频| 国产日本欧美一区二区| 91精品国产综合久久精品性色| 成人h动漫精品| 国产伦精一区二区三区| 日本va欧美va精品发布| 亚洲第一搞黄网站| 亚洲欧美激情一区二区| 国产精品久久毛片a| 久久久久9999亚洲精品| 欧美成人a视频| 91精品欧美福利在线观看| 欧美综合色免费| 97se亚洲国产综合自在线不卡| 国产在线精品免费| 国产一区二区网址| 久久成人免费网| 另类综合日韩欧美亚洲| 石原莉奈一区二区三区在线观看| 一区二区三区在线免费观看| 亚洲欧美一区二区在线观看| 国产精品午夜久久| 综合久久给合久久狠狠狠97色| 日本一区二区视频在线| 久久久国产午夜精品| 国产午夜精品久久久久久免费视| 久久久不卡网国产精品一区| www激情久久| 国产校园另类小说区| 国产欧美一区二区精品久导航 | 久久一日本道色综合| 欧美日韩亚洲综合在线| 欧美高清你懂得| 日韩欧美亚洲一区二区| 日韩精品资源二区在线| 国产欧美综合在线| 亚洲色图另类专区| 亚洲一线二线三线视频| 午夜电影网一区| 精品系列免费在线观看| 成人亚洲一区二区一| 色悠久久久久综合欧美99| 欧美性三三影院| 欧美一级一区二区| 国产亲近乱来精品视频 | 欧美午夜一区二区三区 | 狠狠色综合日日| 成人天堂资源www在线| 欧美在线一二三四区| 欧美一级一区二区| 国产精品乱码一区二三区小蝌蚪| 亚洲欧美日韩精品久久久久| 五月天丁香久久| 成人性生交大片免费看在线播放 | 久久一区二区视频| 亚洲欧美aⅴ...| 日韩不卡在线观看日韩不卡视频| 国产精品99久久久久久似苏梦涵 | 精品视频在线免费观看| 日韩欧美一二三四区| 国产精品五月天| 日韩成人一级片| 99在线精品观看| 欧美va亚洲va| 亚洲男女毛片无遮挡| 另类成人小视频在线| 91成人免费网站| 中文字幕欧美三区| 蜜乳av一区二区| 色哟哟国产精品| 国产午夜亚洲精品午夜鲁丝片 | 国产精品久久久久天堂|