<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 33.9\. 預處理器指令 可用的幾種預處理器指令, 它修改`ecpg`預處理器分析方式以及處理文件方式。 ## 33.9.1\. 包含文件 為了包含一個外部文件到你的嵌入SQL程序中,使用: ``` EXEC SQL INCLUDE _filename_; EXEC SQL INCLUDE <_filename_>; EXEC SQL INCLUDE "_filename_"; ``` 嵌入的SQL預處理器將尋找名為`_filename_`.h的文件, 處理它,并且將它包含在產生的C輸出中。因此,正確處理包含文件中的嵌入SQL語句。 `ecpg`預處理器將按照下面順序在幾個目錄中 搜索文件: * 當前目錄 * `/usr/local/include` * PostgreSQL包含目錄,在編譯時定義 (比如`/usr/local/pgsql/include`) * `/usr/include` 但是當使用`EXEC SQL INCLUDE "``_filename_`"時,僅僅搜索當前目錄。 在每個目錄中,預處理器將首先尋找給定的文件名,如果沒有找到將追加 `.h`到文件名然后再次嘗試(除非指定文件名已經有這種后綴)。 注意`EXEC SQL INCLUDE`是_不_一樣的: ``` #include <_filename_.h> ``` 因為這個文件不受SQL命令預處理的影響。當然,你可以繼續使用 包含其他頭文件的C `#include` 指令。 > **Note:** 包含文件名大小寫敏感,即使其余的`EXEC SQL INCLUDE` 命令遵循正常的SQL大小寫敏感規則。 ## 33.9.2\. define和undef指令 類似于C中`#define`指令,嵌入的SQL有一個類似概念: ``` EXEC SQL DEFINE _name_; EXEC SQL DEFINE _name_ _value_; ``` 所以你可以定義一個名字: ``` EXEC SQL DEFINE HAVE_FEATURE; ``` 你也可以定義常數: ``` EXEC SQL DEFINE MYNUMBER 12; EXEC SQL DEFINE MYSTRING 'abc'; ``` 使用`undef`刪除以前的定義: ``` EXEC SQL UNDEF MYNUMBER; ``` 當然你可以繼續在你的嵌入SQL程序中使用C版本`#define` 和`#undef`。不同的是你定義值的評估不同。如果 你使用`EXEC SQL DEFINE`, 那么`ecpg`預處理器評估定義且替換該值。比如如果你寫: ``` EXEC SQL DEFINE MYNUMBER 12; ... EXEC SQL UPDATE Tbl SET col = MYNUMBER; ``` 那么`ecpg`將執行替換, 而且你的C編譯器不會看到任何名字或者標示符`MYNUMBER`。 注意你不能為打算用在嵌入SQL查詢中的常數使用`#define`, 因為在這種情況下嵌入的SQL預編譯器不能看到這個聲明。 ## 33.9.3\. ifdef,ifndef,else,elif和endif指令 你可以使用下面指令有條件地編譯代碼段: `EXEC SQL ifdef` `_name_`; 如果`_name_`已經和`EXEC SQL define` `_name_`被創建,那么檢查`_name_`并處理 隨后行。 `EXEC SQL ifndef` `_name_`; 如果`_name_`和`EXEC SQL define` `_name_` _沒有_被創建, 那么檢查`_name_`并處理 隨后行。 `EXEC SQL else;` 開始處理另一部分到 `EXEC SQL ifdef` `_name_`或者 `EXEC SQL ifndef` `_name_`介紹的部分。 `EXEC SQL elif` `_name_`; 如果`_name_`和`EXEC SQL define` `_name_`已經被創建, 那么檢查`_name_`并且開始另一部分。 `EXEC SQL endif;` 結束另一部分。 例子: ``` EXEC SQL ifndef TZVAR; EXEC SQL SET TIMEZONE TO 'GMT'; EXEC SQL elif TZNAME; EXEC SQL SET TIMEZONE TO TZNAME; EXEC SQL else; EXEC SQL SET TIMEZONE TO TZVAR; EXEC SQL endif; ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看