select de una tabla

Esteban elucero en ffyb.uba.ar
Mar Mar 22 14:23:02 CET 2005


yo estoy usando el modulo pg

----- Original Message ----- 
From: "Chema Cortes" <py en ls-l.org>
To: "La lista de python en castellano" <python-es en aditel.org>
Sent: Tuesday, March 22, 2005 5:25 AM
Subject: Re: [Python-es] select de una tabla


> Esteban escribió:
> > hola a todos
> > como o donde podré obtener información de como saber que registro
> > de una tabla estoy
> > ejemplo en otros lenguajes con recno() me daría el numero de registro
>
> El recno() se usa mucho en xBase, pero en otros lenguajes no tiene mucho
> sentido. En un SGDB potente, todo objeto se identifica con un 'rowid'
> que sería algo similar. No es exáctamente el ordinal que ocupa el
> registro en una tabla. El 'rowid' suele estar compuesto por varios
> identificadores dependiente de tu SGDB, pero que te identifica
> unívocamente un registro (fila) de tu tabla.
>
> Para obtener el rowid deberás mirar la documentación de tu SBDB. La
> manera habitual es ponerlo explícitamente en el query:
>
>    select rowid,prueba.* from prueba;
>
> La interface DB-API de python define el rowid como la propiedad
> '.lastrowid' del cursor.
>
> > lo que en definitiva necesito es recorrer el resultado de una consulta
> > Ej.
> > select * from prueba where cliente=1
> > hago el query y con getresult()
> > recorro los datos
> > ejemplo
> > resultado=db.query(select * from prueba where cliente=1).getresult()
> > for x in resultado
> >     print x[0]
> >
> > esto imprime el campo 0 pero como se que recno() o registro es
> > ejemplo 1 o el 10 ect
> > como tampoco se como hacer un recordcount()
> > hay alguna función que me de el total de registros traídos por el select
>
> Ummm, esto no parece la DB-API. Aunque no pones qué interface utilizas,
> creo que las respuestas las tenías más cerca de lo que piensas:
>
> Para saber el número de registros (recordcount) bastaría con obtener la
> longitud de la lista ó secuencia que llamas 'resultado' (o sea,
> len(resultado)), y para el recno() se puede utilizar la función
'enumerate':
>
> for recno,x in enumerate(resultado):
>      print "04d% -> %s"%(recno,x[0])
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es




Más información sobre la lista de distribución Python-es