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

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

?? informix.py

?? SQLAlchemy. 經典的Python ORM框架。學習必看。
?? PY
?? 第 1 頁 / 共 2 頁
字號:
# informix.py# Copyright (C) 2005,2006, 2007, 2008 Michael Bayer mike_mp@zzzcomputing.com## coding: gbk## This module is part of SQLAlchemy and is released under# the MIT License: http://www.opensource.org/licenses/mit-license.phpimport datetimefrom sqlalchemy import sql, schema, exceptions, pool, utilfrom sqlalchemy.sql import compilerfrom sqlalchemy.engine import defaultfrom sqlalchemy import types as sqltypes# for offsetclass informix_cursor(object):    def __init__( self , con ):        self.__cursor = con.cursor()        self.rowcount = 0    def offset( self , n ):        if n > 0:            self.fetchmany( n )            self.rowcount = self.__cursor.rowcount - n            if self.rowcount < 0:                self.rowcount = 0        else:            self.rowcount = self.__cursor.rowcount    def execute( self , sql , params ):        if params is None or len( params ) == 0:            params = []        return self.__cursor.execute( sql , params )    def __getattr__( self , name ):        if name not in ( 'offset' , '__cursor' , 'rowcount' , '__del__' , 'execute' ):            return getattr( self.__cursor , name )class InfoNumeric(sqltypes.Numeric):    def get_col_spec(self):        if not self.precision:            return 'NUMERIC'        else:            return "NUMERIC(%(precision)s, %(length)s)" % {'precision': self.precision, 'length' : self.length}class InfoInteger(sqltypes.Integer):    def get_col_spec(self):        return "INTEGER"class InfoSmallInteger(sqltypes.Smallinteger):    def get_col_spec(self):        return "SMALLINT"class InfoDate(sqltypes.Date):    def get_col_spec( self ):        return "DATE"class InfoDateTime(sqltypes.DateTime ):    def get_col_spec(self):        return "DATETIME YEAR TO SECOND"    def bind_processor(self, dialect):        def process(value):            if value is not None:                if value.microsecond:                    value = value.replace( microsecond = 0 )            return value        return processclass InfoTime(sqltypes.Time ):    def get_col_spec(self):        return "DATETIME HOUR TO SECOND"    def bind_processor(self, dialect):        def process(value):            if value is not None:                if value.microsecond:                    value = value.replace( microsecond = 0 )            return value        return process    def result_processor(self, dialect):        def process(value):            if isinstance( value , datetime.datetime ):                return value.time()            else:                return value        return processclass InfoText(sqltypes.String):    def get_col_spec(self):        return "VARCHAR(255)"class InfoString(sqltypes.String):    def get_col_spec(self):        return "VARCHAR(%(length)s)" % {'length' : self.length}    def bind_processor(self, dialect):        def process(value):            if value == '':                return None            else:                return value        return processclass InfoChar(sqltypes.CHAR):    def get_col_spec(self):        return "CHAR(%(length)s)" % {'length' : self.length}class InfoBinary(sqltypes.Binary):    def get_col_spec(self):        return "BYTE"class InfoBoolean(sqltypes.Boolean):    default_type = 'NUM'    def get_col_spec(self):        return "SMALLINT"    def result_processor(self, dialect):        def process(value):            if value is None:                return None            return value and True or False        return process    def bind_processor(self, dialect):        def process(value):            if value is True:                return 1            elif value is False:                return 0            elif value is None:                return None            else:                return value and True or False        return processcolspecs = {    sqltypes.Integer : InfoInteger,    sqltypes.Smallinteger : InfoSmallInteger,    sqltypes.Numeric : InfoNumeric,    sqltypes.Float : InfoNumeric,    sqltypes.DateTime : InfoDateTime,    sqltypes.Date : InfoDate,    sqltypes.Time: InfoTime,    sqltypes.String : InfoString,    sqltypes.Binary : InfoBinary,    sqltypes.Boolean : InfoBoolean,    sqltypes.Text : InfoText,    sqltypes.CHAR: InfoChar,}ischema_names = {    0   : InfoString,       # CHAR    1   : InfoSmallInteger, # SMALLINT    2   : InfoInteger,      # INT    3   : InfoNumeric,      # Float    3   : InfoNumeric,      # SmallFloat    5   : InfoNumeric,      # DECIMAL    6   : InfoInteger,      # Serial    7   : InfoDate,         # DATE    8   : InfoNumeric,      # MONEY    10  : InfoDateTime,     # DATETIME    11  : InfoBinary,       # BYTE    12  : InfoText,         # TEXT    13  : InfoString,       # VARCHAR    15  : InfoString,       # NCHAR    16  : InfoString,       # NVARCHAR    17  : InfoInteger,      # INT8    18  : InfoInteger,      # Serial8    43  : InfoString,       # LVARCHAR    -1  : InfoBinary,       # BLOB    -1  : InfoText,         # CLOB}def descriptor():    return {'name':'informix',    'description':'Informix',    'arguments':[        ('dsn', 'Data Source Name', None),        ('user', 'Username', None),        ('password', 'Password', None)    ]}class InfoExecutionContext(default.DefaultExecutionContext):    # cursor.sqlerrd    # 0 - estimated number of rows returned    # 1 - serial value after insert or ISAM error code    # 2 - number of rows processed    # 3 - estimated cost    # 4 - offset of the error into the SQL statement    # 5 - rowid after insert    def post_exec(self):        if getattr(self.compiled, "isinsert", False) and self.last_inserted_ids() is None:            self._last_inserted_ids = [self.cursor.sqlerrd[1],]        elif hasattr( self.compiled , 'offset' ):            self.cursor.offset( self.compiled.offset )        super(InfoExecutionContext, self).post_exec()    def create_cursor( self ):        return informix_cursor( self.connection.connection )class InfoDialect(default.DefaultDialect):    # for informix 7.31    max_identifier_length = 18    def __init__(self, use_ansi=True,**kwargs):        self.use_ansi = use_ansi        default.DefaultDialect.__init__(self, **kwargs)        self.paramstyle = 'qmark'    def dbapi(cls):        import informixdb        return informixdb    dbapi = classmethod(dbapi)    def is_disconnect(self, e):        if isinstance(e, self.dbapi.OperationalError):            return 'closed the connection' in str(e) or 'connection not open' in str(e)        else:            return False    def do_begin(self , connect ):        cu = connect.cursor()        cu.execute( 'SET LOCK MODE TO WAIT' )        #cu.execute( 'SET ISOLATION TO REPEATABLE READ' )    def type_descriptor(self, typeobj):        return sqltypes.adapt_type(typeobj, colspecs)    def create_connect_args(self, url):        if url.host:            dsn = '%s@%s' % ( url.database , url.host )        else:            dsn = url.database        if url.username:            opt = { 'user':url.username , 'password': url.password }        else:            opt = {}        return ([dsn,], opt )    def create_execution_context(self , *args, **kwargs):        return InfoExecutionContext(self, *args, **kwargs)    def oid_column_name(self,column):        return "rowid"    def table_names(self, connection, schema):

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费视频观看| 国产婷婷色一区二区三区在线| 日韩免费看的电影| 亚洲素人一区二区| 国产乱码精品一品二品| 欧美日韩国产经典色站一区二区三区 | 国产成人高清在线| 91精品国产91久久综合桃花| 亚洲区小说区图片区qvod| 国内成人自拍视频| 日韩西西人体444www| 亚洲成人免费视频| 色综合久久88色综合天天6| 日本一区二区三区高清不卡| 奇米影视一区二区三区小说| 欧美日韩一区二区三区高清 | 91免费视频观看| 国产精品色婷婷| 国产美女视频91| 精品国产一区二区三区四区四| 五月天精品一区二区三区| 97se亚洲国产综合自在线| 国产女主播视频一区二区| 老司机午夜精品99久久| 日韩一级在线观看| 免费看精品久久片| 日韩视频中午一区| 蜜臀91精品一区二区三区 | 欧美亚洲尤物久久| 有坂深雪av一区二区精品| 99久久er热在这里只有精品15| 国产精品乱码一区二区三区软件| 国产成都精品91一区二区三| 国产日韩av一区| 成人黄色软件下载| 亚洲视频在线一区| 在线观看亚洲一区| 日韩国产欧美在线观看| 日韩欧美国产电影| 国产成人丝袜美腿| 国产精品午夜免费| 色94色欧美sute亚洲线路一ni| 一区二区三区四区不卡在线| 欧美主播一区二区三区| 日本美女一区二区三区| 日韩免费电影一区| 国产99久久久国产精品潘金| 亚洲国产精品激情在线观看| 一本久久精品一区二区| 天堂蜜桃一区二区三区| 精品欧美乱码久久久久久1区2区| 精品一区二区三区视频在线观看| 国产香蕉久久精品综合网| 99re这里只有精品6| 亚洲一区av在线| 精品人在线二区三区| k8久久久一区二区三区 | 国产精品一二三区| 亚洲色欲色欲www在线观看| 欧美三级中文字幕| 国产一区视频网站| 亚洲色图欧美偷拍| 日韩一区二区三区观看| 成人综合在线视频| 日韩制服丝袜av| 中文字幕不卡的av| 欧美精品在线观看一区二区| 国产很黄免费观看久久| 亚洲一区在线视频观看| 久久久久久久国产精品影院| 91国产成人在线| 国产盗摄视频一区二区三区| 亚洲一区二区三区在线看| 久久综合资源网| 日本韩国欧美国产| 国产成人av一区| 丝袜美腿亚洲色图| 亚洲图片另类小说| 久久久综合精品| 欧美日韩一区二区电影| 成人黄色片在线观看| 麻豆精品在线观看| 亚洲国产另类av| 中文字幕亚洲电影| 久久精品在线免费观看| 91精品婷婷国产综合久久竹菊| 成年人网站91| 国产另类ts人妖一区二区| 丝袜亚洲精品中文字幕一区| 国产精品麻豆久久久| 欧美精品一区二区三区一线天视频| 欧美在线不卡视频| 91在线精品一区二区| 国产成人在线视频网址| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲最新视频在线观看| 最新热久久免费视频| 国产女人18水真多18精品一级做| 欧美电影免费观看完整版| 69堂精品视频| 欧美日韩黄色影视| 欧美色图免费看| 欧美性猛交xxxx乱大交退制版| 91色九色蝌蚪| 一本色道久久综合亚洲aⅴ蜜桃| 粉嫩久久99精品久久久久久夜| 国产一区二区三区免费观看| 久久国产精品99久久久久久老狼 | 最新热久久免费视频| 国产日韩欧美一区二区三区综合 | 一区二区三区自拍| 日韩码欧中文字| 亚洲精品视频免费看| 国产精品第一页第二页第三页| 国产精品久久久久婷婷| 亚洲欧洲在线观看av| 最新国产の精品合集bt伙计| 亚洲精选在线视频| 激情av综合网| 国产麻豆一精品一av一免费| 激情图片小说一区| 成人午夜在线播放| 91在线观看免费视频| 欧美亚洲动漫制服丝袜| 欧美一区二区视频观看视频| 91精品婷婷国产综合久久性色 | √…a在线天堂一区| 亚洲精品国产精品乱码不99| 亚洲黄色录像片| 日韩激情一二三区| 国产精品一区二区不卡| www.欧美日韩国产在线| 在线亚洲+欧美+日本专区| 欧美三级视频在线| 精品99久久久久久| 国产精品国产自产拍高清av王其| 国产精品国产自产拍高清av| 夜夜揉揉日日人人青青一国产精品| 亚洲电影你懂得| 国内成人免费视频| 日本乱码高清不卡字幕| 日韩欧美一区二区视频| 国产精品国产三级国产aⅴ原创| 亚洲综合久久av| 国产综合久久久久久鬼色| 99精品欧美一区二区蜜桃免费| 欧美日韩激情一区二区三区| 久久综合av免费| 亚洲精品高清在线| 韩国女主播成人在线观看| 色综合久久综合网欧美综合网| 日韩视频免费直播| 亚洲色图20p| 国产美女在线精品| 欧美三级日韩三级| 国产精品理伦片| 美日韩一级片在线观看| 91论坛在线播放| 久久精品视频在线免费观看| 亚洲已满18点击进入久久| 国产馆精品极品| 91精品国产综合久久香蕉麻豆| 国产精品久久免费看| 韩国av一区二区三区在线观看| 91久久精品国产91性色tv| 久久久久久久久99精品| 日韩成人精品视频| 91成人在线精品| 中文字幕第一页久久| 久久99蜜桃精品| 91麻豆精品国产91久久久使用方法 | 久久成人久久爱| 欧美午夜精品免费| 国产精品国产精品国产专区不片| 日韩电影在线一区二区| 色综合天天天天做夜夜夜夜做| 国产欧美1区2区3区| 婷婷一区二区三区| 91电影在线观看| 亚洲色图都市小说| 成人天堂资源www在线| 欧美精品一区二区在线播放| 奇米影视在线99精品| 7777精品伊人久久久大香线蕉的 | 色成年激情久久综合| 亚洲国产精品成人综合| 国内成人精品2018免费看| 51精品秘密在线观看| 偷窥少妇高潮呻吟av久久免费 | 92精品国产成人观看免费| 久久青草国产手机看片福利盒子| 美女在线视频一区| 日韩视频一区二区三区在线播放 | 一级日本不卡的影视| 99vv1com这只有精品| 国产精品久久久久一区 | 国产成人激情av| 中文字幕欧美三区| 成人性生交大合| 中文字幕日本不卡|