Python SQL - test hodnoty NULL: Porovnání verzí

Z GeoWikiCZ
m (pridany kategorie (prog, python,databaze))
m (zvyrazneni syntaxe+sablona python/databaze)
 
Řádek 12: Řádek 12:
kde atribut <tt>email</tt> může nabývat hodnoty null. Nasledující skript vypisuje všechny záznamy, které mají definovanou emailovou adresu. Bez testu <tt> if row[2]: </tt> by pro hodnoty NULL skript skončil výjimkou.
kde atribut <tt>email</tt> může nabývat hodnoty null. Nasledující skript vypisuje všechny záznamy, které mají definovanou emailovou adresu. Bez testu <tt> if row[2]: </tt> by pro hodnoty NULL skript skončil výjimkou.


<pre>
<source lang="python">
#!/usr/bin/python
#!/usr/bin/python


Řádek 35: Řádek 35:
except:
except:
     print "problem ..."
     print "problem ..."
</pre>
</source>


[[Category:Programování]]
[ [[Python|Zpět]] ]
[[Category:Python]]
 
[[Category:Databáze]]
{{Python}}
{{Databáze}}

Aktuální verze z 20. 4. 2008, 19:49

Mějme tabulku

adresy
jmeno
prijmeni
email

kde atribut email může nabývat hodnoty null. Nasledující skript vypisuje všechny záznamy, které mají definovanou emailovou adresu. Bez testu if row[2]: by pro hodnoty NULL skript skončil výjimkou.

#!/usr/bin/python

try:
    import psycopg2, sys

    select = """SELECT jmeno, prijmeni, email FROM adresy
             """
    if len(sys.argv)==2:        # při volání mohu doplnit podminku WHERE
        select += sys.argv[1]
    select += ";"

    conn = psycopg2.connect("")
    cur  = conn.cursor()
    cur.execute(select)
    rows = cur.fetchall()

    for row in rows:
        if row[2]:   # podmínka je splněna, pokud daná hodnota není NULL
            print ' "' + row[0], row[1] + '" <' + row[2] + '>,'

except:
    print "problem ..."

[ Zpět ]