DBEXECUTEFIXED

DBEXECUTEFIXED は、パラメーターをサポートする DBEXECUTE の代替関数です。DBEXECUTE とは異なり、クラウドとオンプレミス環境の両方で、カスタムまたは拡張アプリケーションの両方で使用できます。

SQL ステートメントは固定テキストとして扱われているため、変数を直接参照できません。

ステートメントが保護されていないセルにある場合、そのステートメントが返す値を更新できますが、DBEXECUTE とは対照的に、新しい列を追加することはできません。

注: 

パラメーター名では大文字と小文字が区別されます。

構文

DBEXECUTEFIXED 式には、これらのパラメーターがあります。

  1. 別名: d/EPM Administration で定義されたリレーショナルデータ接続を指定します。
  2. SELECT ステートメント: データベースからデータを取得するために使用します。標準の SQL SELECT コマンドです。データベースを更新できるようにするには、クエリに主キーを含める必要があります。SQL SELECT は複数の値を行から返せますが、DBEXECUTEFIXED は最初以外は無視します。したがって、主キーではない値を返し、書き戻すには、主キーが、ステートメントによって要求された最初の値ではないことを確認してください。書き戻しでは、クエリを含むセルは保護が解除されている必要があります。
  3. パラメーター値: 単一の値と複数の値のパラメーターを使用できます。SQL ステートメントでは、@[parameter_name] を使用して単一の値のパラメーターを参照します。複数の値を持つパラメーターは、@@[parameter_name] で参照します。複数の値を持つパラメーターの値は、パイプ (|) の文字で区切る必要があります。
=DBEXECUTEFIXED("alias", "select_statement", {, "parameter"})

パラメーター名は p1p2 などとして、自動的に割り当てられます。

この例では、数式は、ID が現在 rv_config レポート変数に現在保持されている値を持つ場合に項目名を返します。items.ID は主キーです。

=DBEXECUTEFIXED("configdb", "SELECT items.name,items.ID FROM items WHERE Id=@p1",ReportVariables.rv_configs.Text)

items.id は主キーです。数式が保護されていないセルにあり、値を返した場合は、値を更新できます。この例では、項目名です。

注: 

SQL ステートメント全体がテキストとして処理されているため、DBEXECUTE 式で必要な、文字列値を & 文字で連結する要件はありません。

=DBEXECUTE("configdb", "SELECT items.name,items.ID FROM items WHERE Id="&ReportVariables.rv_configs.Text)
=DBEXECUTE("configdb", "SELECT items.ID,items.name FROM items WHERE name='"&ReportVariables.rv_name.Text&"'")

参照される値が 1 つ目の例では数値であり、2 つ目の例ではテキストであるため、連結の構文は異なります。