Advertisement
Joze

Untitled

Jan 16th, 2012
403
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.71 KB | None | 0 0
  1. # -*- coding: iso-8859-15 -*-
  2.  
  3. import psycopg2
  4. import psycopg2.extras
  5. import sys
  6. from config import *
  7.  
  8. class DATABASE:
  9.     """Database tools"""
  10.    
  11.  
  12.     def __init__(self):
  13.         self.__lastExecutionResult = ''
  14.         self.__lastError = ''
  15.        
  16.        
  17.     def getLastError(self):
  18.         """Get de LastError"""
  19.         return self.__lastError
  20.    
  21.    
  22.     def getLastExecutionResult(self):
  23.         """Get de LastExecutionResult"""
  24.         return self.__lastExecutionResult
  25.    
  26.        
  27.     def __execPSQL(self, procedureName , params):
  28.         """PRIVADA: Esta funcion ejecuta un procedimiento de Postgres.
  29.         Parámetros
  30.             procedureName: nombre del procedimiento postgres
  31.             params: parámetros para la función
  32.         Retorna:
  33.             una lista de 2 elementos.
  34.                 El primero es un booleano que indica si la ejecución ha ido OK
  35.                 El segundo es el resultado de la ejecución o el mensaje de error
  36.         """
  37.    
  38.         result = [False,'']
  39.    
  40.         try:
  41.             conn = psycopg2.connect(CONNECTION_STRING)
  42.         except:
  43.             result[1] = "Unable to connect database %s at %s" % (DATABASE_NAME, DATABASE_HOST)
  44.             return result
  45.        
  46.         cur = conn.cursor()
  47.    
  48.    
  49.         try:
  50.             cur.callproc( procedureName, params)
  51.        
  52.             result[1] = cur.fetchone()
  53.             conn.commit()
  54.             result[0] = True
  55.    
  56.         except Exception, e:
  57.             result[1] = e
  58.            
  59.            
  60.         finally:
  61.             conn.close()
  62.            
  63.         return result
  64.        
  65.    
  66.     def executeProcedure(self, procedureName , parameters):
  67.         """Ejecuta un procedimiento Postgres. El resultado de la ejecución se consulta por la propiedad lastExecutionResult. El error se consulta por la propidad lastError """
  68.  
  69.  
  70.         result = self.__execPSQL( procedureName, parameters)
  71.        
  72.         if not result[0]:
  73.             self.__lastError = result[1]
  74.         else:
  75.             self.__lastExecutionResult = result[1]
  76.        
  77.         return result[0]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement