B
    DDbÔ  ã               @   sT  d dl Z d dlmZ d dlmZ dZdZdZdZi Z	ej
d Ze d¡rPed ndZe d	¡rfed	 ndZe d
¡r|ed
 ndZed dkr(d dlmZ d dlmZmZmZ e d¡rÈed  dd¡ndZe d¡rÞed ndZerþedkrþdeef ZdZde de de de de edœZ	nüed dkr¬d dlZd dlmZmZmZ e d¡rfed ndZe d¡r~ed ndZde de de de de edœZ	nxed dkr.d dlZd dlmZmZmZ e d¡rêed ndZe d¡red ndZe eee¡Zde de de dœZ	nöed dkrªd dlZd dlmZmZmZ e d¡rled ndZe d¡r„ed nd Zde de de de ed!œZ	nzed d"kr$d dlZd dlmZmZmZ e d¡rèed ndZe d¡r ed nd Zde de de de ed!œZ	G d#d$„ d$ƒZeƒ ad%d&„ Zd'd(„ Z d)d*„ Z!dS )+é    N)Úsettings)ÚPooledDB)é   é
   é   éd   Tr   NÚ Úutf8ÚdefaultÚUSERÚPASSWORDÚNAMEZENGINEzsql_server.pyodbc)Úpyodbc)ÚOperationalErrorÚInternalErrorÚProgrammingErrorÚHOSTz\\ú\z	127.0.0.1ÚPORTi™  )Z1433i™  r   z%s:%sz%s)ÚhostÚuserÚcharsetÚpasswordÚdatabaseÚportzdjango.db.backends.mysqliê  )r   r   r   ZpasswdZdbr   zdjango.db.backends.oracleiñ  )r   r   Zdsnz&django.db.backends.postgresql_psycopg2i8  )r   r   r   r   r   Zdjango_postgrespool2c               @   s   e Zd Zdd„ Zdd„ ZdS )Ú	DbManagerc          
   C   sT   yt tftžtŽ| _W n8 tk
rN } ztdtƒ tdƒ |‚W d d }~X Y nX d S )NzThe parameters for DBUtils is:z!=============> DBUtils Exception:)r   ÚpyDBÚargsÚ	conn_argsÚ_poolÚ	ExceptionÚprint)ÚselfÚe© r$   ú,G:\easytimepro\master/mysite/dbutils_pool.pyÚ__init__h   s    
zDbManager.__init__c             C   s
   | j  ¡ S )N)r   Z
connection)r"   r$   r$   r%   Ú_getConnp   s    zDbManager._getConnN)Ú__name__Ú
__module__Ú__qualname__r&   r'   r$   r$   r$   r%   r   f   s   r   c               C   s   t  ¡ S )z get database connection )Ú
_dbManagerr'   r$   r$   r$   r%   ÚgetConnw   s    r,   c              C   sB   d} z8yt ƒ ad} W n$ tk
r8   ddl}| ¡  Y nX W d| S )z reconnect database FTr   N)r   r+   r    Ú	tracebackÚ	print_exc)Úrer-   r$   r$   r%   Ú_reConn|   s    r0   c              C   sF   t dtj ¡  ƒ tƒ } | r0t dtj ¡  ƒ nt dtj ¡  ƒ d S )Nz"%s: now try to reconnect Database!z"%s: reconnect databases success ! z!%s: reconnect databases failed ! )r!   ÚdatetimeZnowr0   )Úflagr$   r$   r%   ÚreConnŠ   s
    r3   )"r1   Zdjango.confr   ZDBUtils.PooledDBr   r   r   r   ÚCHARSETr   Z	DATABASESZdb_cfgÚgetr   r   r   Zsql_server.pyodbcr   r   Zsql_server.pyodbc.pyodbcr   r   r   ÚreplaceZMySQLdbZ	cx_OracleZmakedsnZCONN_STRZpsycopg2r   r+   r,   r0   r3   r$   r$   r$   r%   Ú<module>   sŒ   

