支援的版本: 目前 (17) / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3

34.11. 函式庫函式 #

libecpg 函式庫主要包含 隱藏的 函式,這些函式用於實作嵌入式 SQL 命令所表達的功能。 但是,有一些函式可以直接呼叫。 請注意,這會使您的程式碼不可移植。

  • 如果使用非零的第一個引數呼叫 ECPGdebug(int on, FILE *stream),則會開啟偵錯日誌記錄。 偵錯日誌記錄會在 stream 上完成。 該日誌包含所有SQL陳述式,其中插入了所有輸入變數,以及來自 PostgreSQL 伺服器的結果。 在搜尋您SQL的陳述式中的錯誤時,這非常有用。

    注意

    在 Windows 上,如果 ecpg 函式庫和應用程式使用不同的旗標編譯,則此函式呼叫將導致應用程式崩潰,因為 FILE 指標的內部表示形式不同。 具體來說,多執行緒/單執行緒、發布/偵錯和靜態/動態旗標對於函式庫和所有使用該函式庫的應用程式都應相同。

  • ECPGget_PGconn(const char *connection_name) 傳回由給定名稱識別的函式庫資料庫連線控制代碼。 如果 connection_name 設為 NULL,則傳回目前的連線控制代碼。 如果無法識別任何連線控制代碼,則該函式傳回 NULL。 如果需要,傳回的連線控制代碼可用於從 libpq 呼叫任何其他函式。

    注意

    直接使用 libpq 常式來操作從 ecpg 建立的資料庫連線控制代碼是一個不好的主意。

  • ECPGtransactionStatus(const char *connection_name) 傳回由 connection_name 識別的給定連線的目前交易狀態。 有關傳回的狀態代碼的詳細資訊,請參閱 第 32.2 節和 libpq 的 PQtransactionStatus

  • 如果您已連線到資料庫,ECPGstatus(int lineno, const char* connection_name) 傳回 true,如果未連線,則傳回 false。 如果使用單一連線,connection_name 可以是 NULL

提交更正

如果您在文件中發現任何不正確、與您特定功能的體驗不符或需要進一步澄清的地方,請使用此表單來報告文件問題。