[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