X++ データの選択と操作の概要

対話形式またはソース コードで SQL ステートメントを使用して、データベースに格納されているデータを取得および変更します。 これらのタスクには、 select ステートメントと API メソッドを使用します。

データ アクセスでは、次の他のステートメントを使用します。

トランザクションの整合性 により、データの破損を防ぎ、スケーラビリティを向上させることができます。

セット ベースからレコード単位への操作の変換の記事では、レコード セット ベースのステートメントおよびメソッドをより効率的に使用するための情報を提供します。

SysDa クラスを使用してデータを取得および変更することもできます。 拡張可能な SysDa API では、X++ で使用できるほとんどすべてのデータアクセス可能性が提供されます。

executeQueryWithParameters API は、SQL インジェクション攻撃の軽減 に役立ちます。

結合の使用の詳細については、Exists 結合および Notexists 結合についてのよくある誤解 を参照してください。

SQL ステートメントのタイムアウト

前述の各 SQL ステートメントには、それを送信するセッションの種類に応じて、各ステートメントにタイムアウトが設定されています。

  1. 対話型 セッション - 30 分。
  2. 非対話型 (バッチ、サービス、OData) - 3 時間。

ブロックまたはデータ ボリュームまたはクエリ プランの問題が原因でステートメントがタイムアウトすると、クエリの実行中にデータベースでタイムアウトが発生したというメッセージを含む Exception::Timeout 例外がスローされます。X++ はタイムアウト例外を処理し、この例外に基づいて再試行できます。 既定のタイムアウトをオーバーライドするには、 queryTimeout API を呼び出します。