66 lines
1.2 KiB
Python
66 lines
1.2 KiB
Python
#!/usr/bin/python
|
|
|
|
import psycopg2
|
|
import logging
|
|
import sys
|
|
|
|
class PgDB(object):
|
|
|
|
host = ""
|
|
user = ""
|
|
pwd = ""
|
|
db = ""
|
|
|
|
con = 0
|
|
|
|
def __init__(self,host,user,pwd,db):
|
|
self.host = host
|
|
self.user = user
|
|
self.pwd = pwd
|
|
self.db = db
|
|
|
|
def connect(self):
|
|
if self.con == 0:
|
|
try:
|
|
con = psycopg2.connect("dbname='%s' user='%s' host='%s' password='%s'" % (self.db,self.user,self.host,self.pwd))
|
|
self.con = con
|
|
except Exception, e:
|
|
logging.fatal(e)
|
|
sys.exit(1)
|
|
|
|
def close(self):
|
|
if self.con:
|
|
self.con.close()
|
|
|
|
def setEncoding(self,enc):
|
|
if self.con:
|
|
try:
|
|
self.con.set_client_encoding(enc)
|
|
return True
|
|
except Exception, e:
|
|
logging.error(e)
|
|
return False
|
|
|
|
def doSQL(self,sql,params=None):
|
|
cursor = self.con.cursor()
|
|
try:
|
|
if params is None:
|
|
cursor.execute(sql)
|
|
else:
|
|
cursor.execute(sql,params)
|
|
self.con.commit()
|
|
return True
|
|
except Exception, e:
|
|
logging.error('Erreur durant la requete sql %s : %s' % (sql,e))
|
|
self.con.rollback()
|
|
return False
|
|
|
|
def doSelect(self,sql):
|
|
cursor = self.con.cursor()
|
|
try:
|
|
cursor.execute(sql)
|
|
results = cursor.fetchall()
|
|
return results
|
|
except Exception, e:
|
|
logging.error('Erreur durant la requete sql %s : %s' % (sql,e))
|
|
return False
|