Anfang des Inhaltsbereichs

Funktionsdokumentation Methode execute Dokument im Navigationsbaum lokalisieren

Verwendung

execute ist eine Methode der Klasse SapDB_Prepared.

Mit dieser Methode führen Sie eine SQL-Anweisung mit Parametern aus (z. B. eine Datenbankprozedur).

Funktionsumfang

execute (sqlParms = [])

 

sqlParms

Parameterliste mit den Eingabeparameter

 

Ergebnis:

     bei erfolgreicher Ausführung: siehe Mögliche SQL-Ergebnisse

gegebenenfalls Ausgabeparameter

     bei einem Fehler: Ausnahme der Klasse SQLError

Beispiel

SELECT-Anweisung ausführen

select = session.prepare ('SELECT * FROM hotel.customer WHERE cno = ?')
select.execute ([3000])

<SapDB_ResultSet object at …>

Datenbankprozedur aufrufen (Stored Procedure)

Sie erzeugen die Datenbankprozedur avg_price:

session.sql ("""CREATE DBPROCEDURE avg_price (IN zip CHAR(5), OUT avg_price FIXED(6,2)) AS

    VAR sum FIXED(10,2); price FIXED(6,2); hotels INTEGER;

TRY

  SET sum = 0; SET hotels = 0;

  DECLARE dbproccursor CURSOR FOR

  SELECT price FROM hotel.room,hotel.hotel WHERE zip = :zip AND

  room.hno = hotel.hno AND type = 'single';

    WHILE $rc = 0 DO BEGIN

      FETCH dbproccursor INTO :price;

      SET sum = sum + price;

      SET hotels = hotels + 1;

    END;

CATCH

  IF $rc <> 100 THEN STOP ($rc, 'unexpected error');

CLOSE dbproccursor;

IF hotels > 0 THEN SET avg_price = sum / hotels

  ELSE STOP (100, 'no hotel found');""")

Sie erzeugen mit der Methode prepare ein Objekt der Klasse SapDB_Prepared:

call = session.prepare ('call hotel.avg_price (?, ?)')

Sie geben einen Wert für den Inputparameter an:

in1 = 20005    # sets zip

Sie rufen die Datenbankprozedur mit der Methode execute auf.

out1 = call.execute ([in1])

Sie zeigen den Wert des Ausgabeparameters an:

print 'value avg_price:', out1

value avg_price: (135,0)

Ende des Inhaltsbereichs