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

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

データ アクセスに使用するその他のステートメントを次に示します。

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

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

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

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

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

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

上記のすべての SQL ステートメントには、発行するセッション タイプに応じて、ステートメントごとにタイムアウトが設定されます。

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

ブロックが原因で、または予想以上のデータ量やクエリ プランの問題で、ステートメントがタイムアウトした場合、メッセージクエリの実行中に、データベース内でタイムアウトが発生しました。と共に型の例外 Exception::Timeout がスローされます。X++ では、この例外に基づく処理タイムアウト例外および再試行を許可します。 既定のタイムアウトは、queryTimeout API を呼び出すことによって上書きできます。