• <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++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
            DB2 預(yù)編譯器不能識(shí)別聲明部分中用戶定義的數(shù)據(jù)類型(typefef,#define macros),位于 EXEC SQL BEGIN DECLARE SECTION 和 EXEC SQL END DECLARE SECTION 語(yǔ)句之間。
            由于參數(shù)類型不同,使用用戶定義函數(shù)(UDF)(比如 ||、rawtohex、hextoraw,等等)開(kāi)發(fā)的應(yīng)用程序不能在 DB2 上編譯。

            問(wèn)題 1

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

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

            注:
            此示例只是為了描述問(wèn)題并在編譯之后生成相應(yīng)的錯(cuò)誤,所以其形式非常簡(jiǎn)單。要重現(xiàn)此場(chǎng)景,可以執(zhí)行 db2 "create table test_table (dept int)" 命令創(chuàng)建一個(gè) “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;
            }      



            當(dāng)試圖使用 db2 prep 編譯 test1.sqC 文件時(shí),會(huì)得到以下錯(cuò)誤:


            清單 2. 預(yù)編譯 test1.sqC 的結(jié)果
                           
            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>
                  


            出現(xiàn)這些錯(cuò)誤是因?yàn)?DB2 預(yù)編譯器不能解析一些 typedef 和宏,這些 typedef 和宏用于通過(guò) EXEC SQL BEGIN DECLARE SECTION 和 EXEC SQL END DECLARE SECTION 語(yǔ)句定義的聲明部分
            热re99久久精品国99热| 日日狠狠久久偷偷色综合0| 久久免费看黄a级毛片| 伊人久久一区二区三区无码| 久久香综合精品久久伊人| 日韩va亚洲va欧美va久久| 久久成人国产精品免费软件| 久久久久AV综合网成人| 久久久久国产一区二区三区| 伊人久久大香线蕉亚洲| A级毛片无码久久精品免费| 久久夜色精品国产亚洲| 一本久久久久久久| 老男人久久青草av高清| 国产精品成人久久久久久久| 日韩乱码人妻无码中文字幕久久| 日本精品久久久久中文字幕8| 欧美国产成人久久精品| 久久人人爽人人爽人人片AV东京热| 久久久久久国产精品免费无码 | 亚洲综合熟女久久久30p| 亚洲欧美日韩精品久久| 久久久精品人妻一区二区三区蜜桃| 久久国产免费观看精品| 日韩精品久久无码人妻中文字幕| 久久e热在这里只有国产中文精品99 | 久久精品视频91| 国产高潮国产高潮久久久| 日韩中文久久| 日韩十八禁一区二区久久| 久久久久国产一区二区三区| 99久久亚洲综合精品网站| 国内精品久久久久影院一蜜桃| 久久精品久久久久观看99水蜜桃| 久久午夜福利电影| 亚洲精品无码久久毛片| 午夜精品久久久久久久无码| 久久国产视频网| 无码任你躁久久久久久老妇| 久久久久久亚洲精品无码| 久久久久亚洲精品中文字幕|