[go: up one dir, main page]

Menu

[599fc9]: / sqlutil / dbpool.py  Maximize  Restore  History

Download this file

36 lines (33 with data), 1.3 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from twisted.enterprise import adbapi
class dbpool (adbapi.ConnectionPool):
"""
classe non bloccante che ritorna dei deferred con le risposte
runQuery( self, *args, **kw )
runOperation
runInteraction
"""
def __init__( self, dbname, **kw ):
#utilizza lo user e la password (.mysqlrc) con cui viene fatto partire
adbapi.ConnectionPool.__init__( self, 'MySQLdb', db=dbname, read_default_group='', **kw )
self.dbname = dbname # serve ?? ==> connkw['db']
#self.debug = 1
def getpassword( self, typedpass, typeduser, nfld=['utenti','user','pass'] ):
# TROVARE UN POSTO PER QUESTA FUNZIONE !!!!!!!!
q = 'SELECT MD5(%s),' + nfld[2] + ' FROM ' + nfld[0]
q += ' WHERE ' + nfld[1] + '=%s'
return self.runQuery( q, (typedpass,typeduser) )
def crs_fetchall( self, crs, metodo, *arg, **kw ):
metodo( crs, *arg, **kw )
return crs.fetchall()
def runSelect( self, metodo, *arg, **kw ):
return self.runInteraction( self.crs_fetchall, metodo, *arg, **kw )
if __name__ == '__main__':
import sys
l = len( sys.argv ) ; kw = {}
if l >= 2: dbname = sys.argv[1]
else:
print 'usage: dbname [user] [passwd]'
sys.exit( 1 )
if l >= 3: kw['user'] = sys.argv[2]
if l >= 4: kw['passwd'] = sys.argv[3]
dbp = dbpool( dbname, **kw )