Anfang des Inhaltsbereichs

Diese Grafik wird im zugehörigen Text erklärt  SQL-Anweisung ausführen und Fehler behandeln Dokument im Navigationsbaum lokalisieren

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

Ende des Inhaltsbereichs