## SQL-Anweisung ausführen und Informationen zur Ergebnismenge abfragen

In diesem Beispiel verwenden Sie die Methoden sql und getDescription des Moduls sdb.sql. Sie führen eine SELECT-Anweisung aus, die als Ergebnis ein Objekt der Klasse SapDB_ResultSet liefert (Ergebnismenge), und fragen Informationen zur Struktur der Ergebnismenge ab.

### 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 = """

SELECT title, name, cno FROM hotel.customer

WHERE cno BETWEEN 3000 AND 8000"""

#

# SELECT-Anweisung ausführen

# Ergebnis: Objekt der Klasse SAPDB_ResultSet

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

cursor = session.sql (select)

#

# Die Methode getDescription gibt

# eine Liste der Spaltenbeschreibungen aus.

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

descriptions = cursor.getDescription ()

for description in descriptions:

print '======================='

# Name der Spalte

print 'Name:', description [0]

# Typ der Spalte als String

print 'Type:', description [1]

# Typ der Spalte als ganze Zahl

print 'Type:', description [2]

# Länge der Spalte

print 'Len:', description [3]

# Anzahl der Nachkommastellen

print 'Frac:', description [4]

# Spalten von Ergebnismengen sind immer Pflichtspalten.

print 'Mandatory:', description [5]

# Spalten von Ergebnismengen sind immer Output.

print 'in/out:', description [6]

#

# Beenden der Sitzung mit der Datenbankinstanz

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

session.release ()

2. Rufen Sie das Python-Skript auf:

python sample.py MONA RED DEMODB

### Ergebnis

=======================

Name: TITLE

Type: Char

Type: 1

Len: 7

Frac: 0

Mandatory: 1

in/out: OUT

=======================

Name: NAME

Type: Char

Type: 1

Len: 20

Frac: 0

Mandatory: None

in/out: OUT

=======================

Name: CNO

Type: Fixed

Type: 3

Len: 4

Frac: 0

Mandatory: None

in/out: OUT