Package pyUPVBib :: Module pyPgGas :: Class GeneraExpresionesPsycopg2
[hide private]
[frames] | no frames]

Class GeneraExpresionesPsycopg2

source code

object --+
         |
        GeneraExpresionesPsycopg2

Genera expresiones para realizar selects o inserts

Instance Methods [hide private]
 
generaWhere(self, listaCampos, and_or)
Genera una cadena con la condición where para una consulta sql.
source code
 
generaInsertPsycopg2(self, nombreTabla, listaCampos)
Genera una consulta INSERT para ser usada con psycop2.
source code
 
generaUpdatePsycopg2(self, nombreTabla, listaCampos, condicionWhere)
Genera una consulta UPDATE para ser usada con psycop2.
source code
 
generaInsertPsycopg2Geom(self, nombreTabla, listaCampos, esMulti, nombreCampoGeom, epsg)
Genera una consulta INSERT para ser usada con psycop2, conm un campo de geometría.
source code
 
generaUpdatePsycopg2Geom(self, nombreTabla, listaCampos, esMulti, nombreCampoGeom, epsg, condicionWhere)
NO HA SIDO PROBADO
source code
 
generaSelect(self, nombreTabla, listaCampos, condicionWhere=None, orderBy=None, limit=None)
Genera una expresion select.
source code

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __init__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

generaWhere(self, listaCampos, and_or)

source code 

Genera una cadena con la condición where para una consulta sql. Recibe una lista como ["dni",nombre","apellido" ], y devuelve una cadena con: " dni=%s and nombre=%s and apellido=%s", en el caso de que and_or sea "and" si and_or es "or", entonces devuelve " dni=%s or nombre=%s or apellido=%s"

NO INTRODUCE LA PALABRA WHERE EN LA CADENA DEVUELTA.

Parameters:
  • listaCampos (lista) - Lista con los nombres de los campos que deben aparecer en la condicion where
  • and_or (string) - puede valer "and" u "or".
Returns:
un string con la condición where. Si lista campos no tiene elementos, devuelve ""

generaInsertPsycopg2(self, nombreTabla, listaCampos)

source code 

Genera una consulta INSERT para ser usada con psycop2. Es del tipo:

  • "INSERT INTO nombreTabla (campo1, campo2, ..) values (%s,%s,...)"
Parameters:
  • nombreTabla (string.) - Nombre de la tabla. Si pertenece a un esquema diferente de public hay que poner "nombreEsquema.nombreTabla".
  • listaCampos (lista.) - lista con los nombres de los campos de la tabla
Returns:
Un string con la consulta

generaUpdatePsycopg2(self, nombreTabla, listaCampos, condicionWhere)

source code 

Genera una consulta UPDATE para ser usada con psycop2. Es del tipo:

  • "UPDATE tabla SET campo1=%s, campo2=%s, ...WHERE id=2356"
Parameters:
  • nombreTabla (string.) - Nombre de la tabla. Si pertenece a un esquema diferente de public hay que poner "nombreEsquema.nombreTabla".
  • listaCampos (lista.) - Lista con los campos de la tabla a actualizar.
  • condicionWhere (string) - condicion que ha de cumplir el registro para ser actualizado. Ejemplo: id=%s and lugar=%s or lugar=%s. Como se ve no hay que poner los valores, hay que poner %s. Esos valores los debe introcir Psycopg2 en cursor.execute(cad,valores) Deben estar en la lista valores. Se hace así por seguridad. pysicopg2 escapa los caracteres correctamente.
Returns:
Un string con la consulta, solo hay que sustituir %s por los valores correctos.

generaInsertPsycopg2Geom(self, nombreTabla, listaCampos, esMulti, nombreCampoGeom, epsg)

source code 

Genera una consulta INSERT para ser usada con psycop2, conm un campo de geometría. Es del tipo:

  • "insert into h30.fincas (tipo_finca,geom) values (%s,ST_multi(ST_geometryfromtext(%s,25830)))"
Parameters:
  • nombreTabla (string) - Nombre de la tabla. ej1:"imagenes" ej2: "esquemaPG.imagenes".
  • listaCampos (string) - Lista con los nombres de los campos. Ej [nombre, direccion, img]. El último nombre en la lista debe ser el del campo bytea
  • esMulti (Booleano) - Si es multi, se deja como estaba, si no, se convierte a multi.
  • nombreCampoGeom (srtring) - nombre del campo de geometría. Debe estar incuído en listaCampos.
  • epsg (string) - codigo EPSG de la tabla donde se insertará la geometria
Returns:
la expresión INSERT para ser usada con psycop2.

generaUpdatePsycopg2Geom(self, nombreTabla, listaCampos, esMulti, nombreCampoGeom, epsg, condicionWhere)

source code 

NO HA SIDO PROBADO

Genera una consulta UPDATE para ser usada con psycop2, con un campo de geometría. Es del tipo:

  • "UPDATE tabla set tipo_finca=%s, geom=ST_multi(ST_geometryfromtext(%s,25830))"
Parameters:
  • nombreTabla (string) - Nombre de la tabla. ej1:"imagenes" ej2: "esquemaPG.imagenes".
  • listaCampos (string) - Lista con los nombres de los campos. Ej [nombre, direccion, img].
  • esMulti (Booleano) - Si es multi, se deja como estaba, si no, se convierte a multi.
  • nombreCampoGeom (srtring) - nombre del campo de geometría. Debe estar incuído en listaCampos.
  • epsg (string) - codigo EPSG de la tabla donde se insertará la geometria
  • condicionWhere (string) - condicion que ha de cumplir el registro para ser actualizado. Ejemplo: id=%s and lugar=%s or lugar=%s. Como se ve no hay que poner los valores, hay que poner %s. Esos valores los debe introcir pysicopg2 en cursor.execute(cad,valores)
Returns:
Un string con la consulta, solo hay que sustituir %s por los valores correctos.

generaSelect(self, nombreTabla, listaCampos, condicionWhere=None, orderBy=None, limit=None)

source code 

Genera una expresion select. Lista para ser usada con psycopg2:

  • "SELECT campo1, campo2, .. FROM nombreTabla WHERE campo1=25;"
Parameters:
  • nombreTabla (string) - Nombre de la tabla. ej1:"imagenes" ej2: "esquemaPG.imagenes".
  • listaCampos (Lista de strings) - Lista de strings con los nombres de los campos a recuperar. Ej: ["id", "nombre", "img"]
  • condicionWhere (string) - condicion que ha de cumplir el registro para ser actualizado. Ejemplo: id=%s and lugar=%s or lugar=%s. Como se ve no hay que poner los valores, hay que poner %s. Esos valores los debe introcir Psycopg2 en cursor.execute(cad,valores) Deben estar en la lista valores. Se hace así por seguridad. pysicopg2 escapa los caracteres correctamente.
  • orderBy (string) - Nombre del campo por el cual se quiere ordenar los registros seleccionados
  • limit (integer) - número máximo de registros devueltos.
Returns:
Un string con la expresion select. Exception si no se ha podido realizar.