select de una tabla
Chema Cortes
py en ls-l.org
Mar Mar 22 09:25:45 CET 2005
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])
Más información sobre la lista de distribución Python-es