<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 31.6\. 取消正在處理的查詢 一個客戶端應用可以使用本節描述的函數,要求取消一個仍在被服務器處理的命令。 `PQgetCancel` 創建一個數據結構,這個數據結構包含通過特定數據庫連接取消一個命令所需要的信息。 ``` PGcancel *PQgetCancel(PGconn *conn); ``` 給出一個`PGconn`連接對象,`PQgetCancel`創建一個 `PGcancel`對象。如果給出的`conn` 是`NULL`或者是一個無效的連接,那么它將返回`NULL`。 `PGcancel`對象是一個不透明的結構,不應該為應用所直接訪問; 我們只能把它傳遞給`PQcancel`或者`PQfreeCancel`。 `PQfreeCancel` 釋放`PQgetCancel`創建的數據結構。 ``` void PQfreeCancel(PGcancel *cancel); ``` `PQfreeCancel`釋放一個由前面的`PQgetCancel`創建的數據對象。 `PQcancel` 要求服務器放棄處理當前命令。 ``` int PQcancel(PGcancel *cancel, char *errbuf, int errbufsize); ``` 如果取消請求成功發送,則返回值為 1,否則為 0。如果不成功,則`errbuf` 里面會填充解釋的錯誤信息。`errbuf`必須是一個大小為`errbufsize` 的 char 數組(建議大小為 256 字節)。 不過,成功發送取消請求并不保證請求會有任何效果。如果取消生效, 那么當前的命令將提前結束并且返回一個錯誤的結果。如果取消失敗(也就是說, 因為服務器已經完成命令的處理),那么就根本不會有可見的結果。 如果`errbuf`是信號句柄里的一個局部變量,那么`PQcancel` 可以在一個信號句柄里安全地調用。在`PQcancel`涉及的范圍里, `PGcancel`對象都是只讀的, 因此我們也可以從一個與處理`PGconn` 對象的線程分離的線程里處理它。 `PQrequestCancel` `PQrequestCancel`是`PQcancel`的一個廢棄的變種。 ``` int PQrequestCancel(PGconn *conn); ``` 要求服務器放棄對當前命令的處理。它直接在`PGconn`對象上進行操作, 并且如果失敗,就會在`PGconn`對象里存儲錯誤信息(因此可以用 `PQerrorMessage`檢索出來。)盡管功能一樣, 但是這個方法在多線程程序里和信號句柄里會有危險,因為它可能覆蓋`PGconn` 的錯誤信息,因此將可能把當前連接正在處理的操作打亂。
                  <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>

                              哎呀哎呀视频在线观看