[python] sqllite - existuje záznam v DB?

Petr Vanek petr na scribus.info
Středa Únor 7 10:29:34 CET 2007


> Dobrý den, začínám s sqllite a potřebuji zjisti jestli určitý
záznam 
> existuje DB nebo ne
> zatím to řeším takto, ale chtěl jsem se zeptat jestli by to šlo i
nějak 
> jinak (jednodušeji, elegantněji ....)
> 
> cur.execute('SELECT * FROM soubory WHERE jmeno="test.txt"')
> if len(cur.fetchall()) == 0:
>     print "zaznam nexistuje"
> else:
>     print "zaznam existuje"

Je to boj. Sqlite je "jednoducha" DB. Takze nektere veci z python db
API tak nejak podporuje-nepodporuje.

viz prave "rowcount" na:
http://docs.python.org/lib/sqlite3-Cursor-Objects.html

takze len() se pouzit da. Otazkou ale zustava, proc na elementarni
zjisteni poctu zaznamy vyhovujicich dane podmince pouzivas projekci "*"?
Proc nepouzijes count() (pres sikovny index), a pak jen porovnas jedinou
vyslednou hodnotu na == 0? Netahal bys hromadu dat a nemusel bys pocitat
len().

petr

P.S.: neodpustim si poznamku, ze v PyQt4.QtSql.* "affected rows" samozrejme
funguje ;)




Další informace o konferenci Python