• <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>
            posts - 311, comments - 0, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            前兩天搞mysql的東西,用mysql提供的C API 訪問,遇到些問題,在這里分享一下,希望對其他人有幫助。

               mysql C API 調(diào)用存儲過程,并返回結(jié)果集。需要注意幾個問題:

            在建立鏈接的時候要加選項(xiàng)CLIENT_MULTI_STATEMENTS 或 CLIENT_MULTI_RESULTS,以便可以讓query執(zhí)行多個語句。

            mysql_real_connect(mySQL,serverIP,user,password,database,serverPort,NULL,CLIENT_MULTI_STATEMENTS)

                 當(dāng)query時可能產(chǎn)生錯誤error:2014 Commands out of sync; you can't run this command now

             

            Mysql文檔中說明錯誤:Commands out of sync

            If you get Commands out of sync; you can't run this command now in your client code, you are calling client functions in the wrong order.

            This can happen, for example, if you are using mysql_use_result() and try to execute a new query before you have called mysql_free_result(). It can also happen if you try to execute two queries that return data without calling mysql_use_result() or mysql_store_result() in between.

             

            當(dāng)執(zhí)行完query后,mysql將結(jié)果集放在一個result集中,產(chǎn)生以上問題的原因有兩個:

            一是未將MYSQL_RES所指對象釋放,即在下次查詢時要mysql_free_result();

            二是結(jié)果result集不為空,這個原因比較隱蔽。解決方法可以用如下寫法:

            do
            {
              
            /* Process all results */
              printf(
            "total affected rows: %lld", mysql_affected_rows(mysql));
              
              
            if (!(result= mysql_store_result(mysql)))
              {
                 printf(stderr, 
            "Got fatal error processing query/n");
                 exit(
            1);
              }
              process_result_set(result); 
            /* client function */
              mysql_free_result(result);
            while (!mysql_next_result(mysql));

            還有個問題感覺比較奇怪,我調(diào)用一個存儲過程,存儲過程中就一句select

            Create procedure test()

            Begin

                Select * from test ;

            End ;

            用以上方法處理結(jié)果集循環(huán)會執(zhí)行兩次,開始我只調(diào)了一次result= mysql_store_result(mysql)),導(dǎo)致以后執(zhí)行query2014錯誤。

            久久婷婷国产综合精品| 一本伊大人香蕉久久网手机| 久久伊人精品一区二区三区| 亚洲午夜无码AV毛片久久| 亚洲伊人久久精品影院| 久久99精品综合国产首页| 久久午夜福利电影| 97r久久精品国产99国产精| 久久亚洲国产成人影院网站 | 囯产极品美女高潮无套久久久| 国产精品国色综合久久| 亚洲国产日韩综合久久精品| 国产午夜久久影院| 97精品依人久久久大香线蕉97 | 日本亚洲色大成网站WWW久久| 久久婷婷五月综合97色 | 国产成人香蕉久久久久| 777午夜精品久久av蜜臀| 久久天天躁狠狠躁夜夜2020老熟妇 | 欧美亚洲国产精品久久蜜芽| 欧美日韩精品久久久久| 久久精品亚洲乱码伦伦中文| 久久中文娱乐网| 久久久久AV综合网成人| 伊人 久久 精品| 久久久久亚洲AV成人网人人软件| 99久久国语露脸精品国产| 国产69精品久久久久9999APGF| 无码乱码观看精品久久| 99久久人人爽亚洲精品美女| 久久99国产精品一区二区| 久久超乳爆乳中文字幕| 午夜精品久久久久久久| 77777亚洲午夜久久多人| 久久99九九国产免费看小说| 伊人精品久久久久7777| 久久久久久精品成人免费图片| 久久久久se色偷偷亚洲精品av| 欧美亚洲国产精品久久| 国产成人久久精品一区二区三区| 人妻精品久久久久中文字幕一冢本 |