Anfang des Inhaltsbereichs

Hintergrunddokumentation Prepared Statement Dokument im Navigationsbaum lokalisieren

Prepared Statements werden bei der Entwicklung von Datenbankanwendungen verwendet. Sie ermöglichen es, in Methoden der für die Datenbankanwendung gewählten Programmiersprache SQL-Anweisungen mit Platzhaltern zu verwenden.

Platzhalter können nur für Werte stehen, nicht jedoch für Namen von Datenbankobjekten wie beispielsweise den Namen einer Tabelle. Als Platzhalter können Sie ein Fragezeichen ? oder einen Variablennamen :input verwenden. Wenn Sie mehrmals denselben Variablennamen verwenden, dann entspricht dieser mehreren Parametern.

Prepared Statements bieten gegenüber einfachen SQL-Anweisungen unter anderem die folgenden Vorteile:

·        Sie sind effizienter, weil das Datenbanksystem sie nur einmal parsen muss, auch wenn sie mehrfach verwendet werden (siehe hared SQL).

·        Sie sind sicherer, weil sie die SQL-Logik und die vom Benutzer eingegebenen Daten trennen und so die Gefahr verringern, dass ein Benutzer absichtlich ungültige Werte eingibt (SQL Injection). Siehe MaxDB Sicherheitsleitfaden, Benutzereingaben in SQL-Anweisungen überprüfen

Für die folgenden MaxDB-Schnittstellen können Sie Prepared Statements verwenden:

MaxDB-Schnittstellen: PreparedStatements

Schnittstelle

Implementierung

JDBC

Klasse PreparedStatement

ODBC

Methode SQLPrepare

SQLDBC

Klasse SQLDBC_PrepareStatement

PHP

maxdb_prepare

Perl

prepare

Python

StrukturlinkMethode prepare, StrukturlinkKlasse SAPDB_Prepared

Beispiel

Prepared Statement für die MaxDB SQLDBC-Schnittstelle:

SQLDBC_PrepareStatement *stmt = conn->createPreparedStatement();

   SQLDBC_Retcode rc = stmt->prepare("SELECT * FROM CUSTOMER");

   if (rc != SQLDBC_OK) {

     // Handle error ...

   }

   rc = stmt->execute();

   if (rc != SQLDBC_OK) {

     // Handle error ...

   }

Ende des Inhaltsbereichs