Skip to main content

 

アプリケーションの開発

 

OutSystems

SQLクエリ

SQL要素を使用すると、アプリケーションのカスタムSQLクエリを実行、テストおよびレビューすることができます。要素は柔軟なデータ操作を提供しますが、該当する場合はAggregateを使用することをお勧めします。Aggregateは、高度に最適化され保守も容易です。

SQLクエリは、入力パラメータのみを介して送信されるデータにアクセスできます。その他のロジックは、SQLが返したデータのみに出力ストラクチャを介してアクセスできます。

入力パラメータ
入力パラメータを提供することにより、SQLクエリに動的データを使用できます。入力パラメータは必須ではありません。
出力パラメータ

OutSystemsのSQLクエリには、実行されたクエリが結果を返さない場合でも常に2つの出力パラメータがあります。

  • List: クエリが返した結果のリスト。結果が何もない場合、リストは空です。
  • Count: クエリが返したレコードの数(SQL Max Recordsプロパティは考慮されません)。

出力ストラクチャは必須です。クエリが返す構造(列のデータ型)を定義する必要があります。たとえば、Employeeエンティティに対してIdNameEmailPhoneNumberの各アトリビュートを抽出するクエリを実行する場合、同じアトリビュートを持つ出力ストラクチャを指定します。これにより、SQLクエリのList出力パラメータがEmployee Listデータ型を返すようになります。出力ストラクチャは、SQ文が結果を返さない場合でも必要です。

注記およびガイドライン

SQL要素を使用する場合には以下の点を考慮します。

データ定義言語を避ける
SQLツールの使用は、次の操作を実行する場合に限定する必要があります。SELECTINSERTUPDATEおよびDELETE文。CREATE TABLEALTER TABLEDROP TABLE等のDDL(データ定義言語)を使用すると、OutSystemsメタモデルの一貫性が損なわれ、誤動作を招く可能性があります。
物理層のクエリを使わない
OutSystemsメタモデルの一貫性を常に保証するため、メタモデルの物理テーブルに直接クエリを実行することはできません。プレフィックスOSLOGOSSYSまたはOSUSRを持つテーブルをクエリで使用すると、プラットフォームはエラーメッセージを表示します。
例外によってトリガーされるロールバック
OutSystemsは、Webリクエストがサーバーに届いたらトランザクションを開始し、ユーザーに応答を返す前にトランザクションをコミットします。例外が捕捉されずに残った場合、データの一貫性を常に保証するため、トランザクションはロールバックされます。これは、クエリがトランザクションの内部で処理され、失敗した場合は変更がロールバックされることを意味します。
ランタイムユーザーの権限の確認
クエリは、Configurationツールで指定されたランタイムユーザーを使用して、データベースでテスト・実行されます。このユーザーが、クエリで指定されたSQL文を実行する権限を持っていることを確認する必要があります。権限がない場合、実行時にそのクエリを実行したり、テストしたりするとエラーが発生します。
データベースサポートの確認
Database Moduleプロパティが[All]に設定されていると、OutSystemsは、サポートされているすべてのデータベースにクエリが適合していることを確認します。適合していない場合は、警告メッセージが表示されます。
  • Was this article helpful?