• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
            DB2 預編譯器不能識別聲明部分中用戶定義的數據類型(typefef,#define macros),位于 EXEC SQL BEGIN DECLARE SECTION 和 EXEC SQL END DECLARE SECTION 語句之間。
            由于參數類型不同,使用用戶定義函數(UDF)(比如 ||、rawtohex、hextoraw,等等)開發的應用程序不能在 DB2 上編譯。

            問題 1

            如果在 EXEC SQL BEGIN DECLARE SECTION 和 EXEC SQL END DECLARE SECTION 語句之間使用了用戶定義的數據類型(例如 C/C++ 中的 “typedef”)和宏(#define),那么 DB2 預編譯器在編譯這些程序時會遇到一些問題。

            因此,如果將一個包含嵌入式 SQL 語句的文件(.sqC)傳遞到 db2 precompile 命令,則編譯時會提示出錯。如清單 1 所示。

            注:
            此示例只是為了描述問題并在編譯之后生成相應的錯誤,所以其形式非常簡單。要重現此場景,可以執行 db2 "create table test_table (dept int)" 命令創建一個 “TEST_TABLE” 表。  

            考慮如下的 test1.sqC 文件:


            清單 1. test1.sqC
                           
            #include <stdio.h>

            #define LONGBIG long

            /*
            Or we can have a definition like:
            typedef long LONGBIG
            */

            EXEC SQL INCLUDE SQLCA;
            EXEC SQL BEGIN DECLARE SECTION;
                    LONGBIG col1_val;
            EXEC SQL END DECLARE SECTION;

            int main()
            {
                    EXEC SQL SELECT DEPT
                    INTO :col1_val
                    FROM TEST_TABLE;
                   
                    return 0;
            }      



            當試圖使用 db2 prep 編譯 test1.sqC 文件時,會得到以下錯誤:


            清單 2. 預編譯 test1.sqC 的結果
                           
            db2 prep test1.sqC bindfile

            LINE    MESSAGES FOR test1.sqC
            ------  --------------------------------------------------------------------
                    SQL0060W  The "C++" precompiler is in progress.
               11   SQL0008N  The token "LONGBIG" found in a host variable
                              declaration is not valid.
               18   SQL4942N  The statement selects an incompatible data type
                              into host variable ":col1_val".  SQLSTATE=42806
                    SQL0095N  No bind file was created because of previous
                              errors.
                    SQL0091W  Precompilation or binding was ended with "3"
                              errors and "0" warnings.

            [db2inst1]/users/ganesh_gosavi/mig1/issues/NULL_issue>
                  


            出現這些錯誤是因為 DB2 預編譯器不能解析一些 typedef 和宏,這些 typedef 和宏用于通過 EXEC SQL BEGIN DECLARE SECTION 和 EXEC SQL END DECLARE SECTION 語句定義的聲明部分
            中文精品久久久久人妻| 伊人久久综合精品无码AV专区| 亚洲国产精品久久| 2021久久国自产拍精品| 中文字幕无码久久久| 久久精品亚洲精品国产欧美| 久久综合视频网站| 亚洲精品乱码久久久久久蜜桃 | 国产午夜精品久久久久九九| 久久影视国产亚洲| 亚洲国产天堂久久久久久| 国产A级毛片久久久精品毛片| 日本强好片久久久久久AAA | 久久精品无码午夜福利理论片| 无码8090精品久久一区| 国产一区二区精品久久岳| 狠狠色丁香婷婷久久综合不卡| 久久人人爽人人爽人人片av高请| 久久这里有精品| 国产69精品久久久久久人妻精品| 国产成人综合久久精品红| 伊人久久成人成综合网222| 亚洲美日韩Av中文字幕无码久久久妻妇 | 国产亚洲精午夜久久久久久 | 久久91精品久久91综合| 成人久久精品一区二区三区 | 国产成人精品白浆久久69| 久久久久成人精品无码中文字幕 | 国色天香久久久久久久小说| 久久九色综合九色99伊人| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 99蜜桃臀久久久欧美精品网站| 久久婷婷五月综合色奶水99啪| 国产精品青草久久久久福利99| 中文字幕人妻色偷偷久久| 日本精品久久久中文字幕| 久久精品国产99国产精品亚洲 | 久久精品一本到99热免费| 国产精品久久新婚兰兰| 国产成人无码精品久久久免费 | 精品久久久久一区二区三区 |