## SQL-Anweisung ausführen und Fehler behandeln

In diesem Beispiel verwenden Sie die die Klasse SQLError des Moduls sdb.sql. Um Ausnahmen dieser Klasse zu erzeugen, führen Sie folgende Fehlersituationen herbei: Sie führen eine SELECT-Anweisung mit einem falschen Spaltennamen aus und Sie führen eine SQL-Anweisung mit einem falschen Parameter aus.

### Vorgehensweise

...

1. Erstellen Sie ein Python-Skript sample.py mit folgendem Inhalt:

#

# Python-Module importieren

# ---------------------------------------------------

import sys

import sdb.sql

#

# Verbindung zur Datenbankinstanz herstellen

# ---------------------------------------------------

database_user = sys.argv [1]

database_user_password = sys.argv [2]

database_name = sys.argv [3]

session = sdb.sql.connect (database_user, database_user_password, database_name)

#

# SELECT-Anweisung mit einem falschen Spaltennamen

# unknown ausführen (Fehler in der SQL-Anweisung)

#----------------------------------------------------

select = "SELECT unknown FROM hotel.customer"

try:

cursor = session.sql (select)

except sdb.sql.SQLError, err:

print "ERR [%d] %s" % (err.errorCode, err.message)

print select

print ("=" * (err.errorPos - 1)) + '^'

#

# SQL-Anweisung mit einem falschen Parameter ausführen

# (Fehler während der Ausführung der SQL-Anweisung)

#-----------------------------------------------------

try:

count = session.sqlX ("""INSERT INTO hotel.customer

VALUES (?,?,?,?,?,?)""", ['wrong_data_type', 'Mrs', 'Jennifer', 'Parker', '10590', '0 N.Ash Street, #6'])

except sdb.sql.SQLError, err:

print "ERR [%d] %s" % (err.errorCode, err.message)

#

# Verbindung zur Datenbankinstanz beenden

# ----------------------------------------------------

session.release ()

2. Rufen Sie das Python-Skript auf:

python sample_6.py MONA RED DEMODB

ERR [-4005] Unknown column name:UNKNOWN

SELECT unknown FROM hotel.customer

=======^

ERR [-817] Incompatible data types

Siehe auch:

Beispiele für das Modul sdb.sql