コンテンツエリア開始

Background documentation 準備された文 Locate the document in its SAP Library structure

準備された文は、データベースアプリケーションの開発で使用されます。これにより、データベースアプリケーションに使用する言語のメソッドで、プレースホルダを持つ SQL 文を使用することができます。

プレースホルダは、値のみを表すことができ、テーブル名など、データベースオブジェクト名を表すことはできません。プレースホルダとして、疑問符 (?) または変数名 (:input) のいずれかを使用することができます。同じ変数名を複数回使用する場合は、複数のパラメータがあることを表しています。

準備された文が単純な SQL 文よりも優れている点は、以下のとおりです。

      複数回使用される場合でも、データベースシステムによる解析は 1 回で済むため、より効率的です (共有 SQL を参照)

      SQL ロジックとユーザが指定するデータを分離することによって、ユーザが意図的に不正な値を指定するリスク (SQL インジェクションのリスク) を低減することができ、より安全です。MaxDB セキュリティガイドStructure linkSQL 文のユーザ入力のチェックを参照してください。

以下の MaxDB インタフェースで、準備された文を使用することができます。

MaxDB インタフェース:準備された文

Interface

実装

JDBC

クラス PreparedStatement

ODBC

メソッド SQLPrepare

SQLDBC

クラス SQLDBC_PrepareStatement

PHP

maxdb_prepare

Perl

prepare

Python

Structure linkメソッド prepareStructure linkクラス SAPDB_Prepared

MaxDB SQLDBC インタフェースの準備された文の例を以下に示します。

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 ...

   }

 

 

コンテンツエリア終了