Skip to main content

#sqlcompile mode

非推奨。

説明

このマクロ・プリプロセッサ指示文は非推奨です。InterSystems IRIS 2020.1 では、ほとんどの操作 (SELECT、INSERT、UPDATE、DELETE を含む) の埋め込み SQL コードは、このプリプロセッサ指示文の設定に関係なく、この SQL コードを含むルーチンのコンパイル時ではなく、SQL コードの実行時 (ランタイム) にコンパイルされます。

以前のリリースでは、#sqlcompile mode=value によって、このプリプロセッサ指示文に続くコードの埋め込み SQL に対してコンパイル・モードが指定されていました。これによって、特定の埋め込み SQL の DML コマンドに、Embedded (コンパイル時に埋め込み SQL を処理) と Deferred (実行時まで埋め込み SQL の処理を遅延) のいずれかのコンパイル・モードが指定されていました。

InterSystems IRIS 2020.1 では、埋め込み SQL の DML コマンドはすべて実行時まで遅延され、実行時にクエリ・キャッシュとして処理されます。したがって、埋め込み SQL は常に、コンパイル時に存在しないテーブル、ユーザ定義関数、および他の SQL エンティティを参照できます。

埋め込み SQL 文は、コンパイル時に解析されます。埋め込み SQL 文に無効な SQL (SQL 構文エラーなど) が含まれている場合、コンパイラは、コード "** SQL Statement Failed to Compile **" を生成し、ObjectScript コードのコンパイルを続行します。このように、無効な埋め込み SQL を含むメソッドでクラスをコンパイルすると、SQL エラーが報告されますが、メソッドは生成されます。このメソッドを実行すると、無効な SQL によるエラーが発生します。

詳細は、"埋め込み SQL の使用法" を参照してください。

Note:

#sqlcompile mode=Deferred を、名前が似ているもののまったく異なる目的で使用される $SYSTEM.SQL.Util.SetOption(“CompileModeDeferred”) メソッドと混同しないようにしてください。

FeedbackOpens in a new tab