[python] využití warnings v mysqldb

Leos Pol leos na radiante-corp.com
Středa Srpen 15 10:48:33 CEST 2007


Myslim, ze by mohlo pomoci tohle:

    import MySQLdb

    con = MySQLdb.connect('localhost', 'root', 'xxxx', 'test')
    cur = con.cursor()
    # _defer_warnings ver. >= 1.2.2
    cur._defer_warnings = True
    cur.execute('drop table if exists whatever')
    print con.show_warnings()
    cur.close()
    con.close()

Leo
PS: jeste je moznost nechat _defer_warnings = False a pak je mozne cist 
vyjimky z cur.messages

Vladislav Ludík wrote:
> Když zadám chybnou hodnotu pro zápis do databáze, v Linuxu vidím 
> hlášení Warning.
>
> Například jsem zadal hodnotu místo čísla text:
>
> /43: Warning: Rows matched: 1 Changed: 0 Warnings: 1/
>
> Potřebuji varování nějak zpracovat. V modulu _mysql_exceptions se však 
> výjimky na závěr mažou a zůstává jen Warnings.
>
> Takže když jsem zkoušel například:
>
> /    def sql(self,SQL):
>         'Vykoná SQL'
>
>         self.SQL = SQL
>        
>         import MySQLdb, _mysql_exceptions
>
>         db = MySQLdb.connect(host=self.host,
>                              user=self.user,
>                              passwd=self.passwd,
>                              db=self.db)
>         kurzor = db.cursor()
>         try:
>             kurzor.execute(self.SQL)
>         except _mysql_exceptions.Warning, msg:
>             return 'Mysql Warning: %s' % msg
>         return
>
> /
> Zápis chybné hodnoty neproběhne, ale výjimka nevznikne.
>
> Potřebuju pomoc, neví někdo, jak na to?
>
> Díky
> ------------------------------------------------------------------------
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python


-- 
----
Leos Pol
Team Leader
Radiante Corp.

If it can be imagined,
we can implement it



Další informace o konferenci Python