how to catch specific pyodbc error message
odbc, pyodbc, python
Solution
pyodbc seems to just wrap the errors/exceptions from the underlying ODBC implementation, so it's unlikely that you will be able to do this.
Problem
I trid the following code, ``` import pyodbc try: pyodbc.connect('DRIVER={%s};SERVER=%s;DATABASE=%s;UID=%s;PWD=%s' % (driver, server, database, uid, password)) except pyodbc.Error, err: logging.warn(err) ``` The error message format i get is ``` ('HY000', "[HY000] [MySQL][ODBC 5.1 Driver]Access denied for user 'root'@'192.168.2.27' (using password: YES) (1045) (SQLDriverConnect)") ``` I want to receive just the message part of the error i.e. ``` Access denied for user 'root'@'192.168.2.27'(using password: YES) ``` I dont know if I can catch errors specifically like, driver not found, host down etc.. I also tried catching errors as: ``` except pyodbc.OperationalError, err: logging.warn(err) except pyodbc.DataError, err: logging.warn(err) except pyodbc.IntegrityError, err: logging.warn(err) except pyodbc.ProgrammingError, err: logging.warn(err) except pyodbc.NotSupportedError, err: logging.warn(err) except pyodbc.DatabaseError, err: logging.warn(err) except pyodbc.Error, err: logging.warn(err) ``` but the last one always catches the error. Fruthermore i saw the pyodbc.Error.message is always empty. How can i get just the message in the error. Thanks