W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
ecpg — 嵌入式 SQL C 預處理器
ecpg
[option
...] file
...
ecpg
是用于 C 程序的嵌入式 SQL 預處理器。它通過將 SQL 調(diào)用替換為特殊函數(shù)調(diào)用把帶有嵌入式 SQL 語句的 C 程序轉(zhuǎn)換為普通 C 代碼。輸出文件可以被任何 C 編譯器工具鏈處理。
ecpg
將把命令行中給出的每一個輸入文件轉(zhuǎn)換為相應的 C 輸出文件。 如果輸入文件名沒有任何擴展名,則假定為.pgc
。文件擴展名將由 .c
替換以構造輸出文件名。 但是輸出文件名可以使用-o
選項覆蓋。
如果輸入文件名只是-
,ecpg
從標準輸入 讀取程序(并寫入標準輸出,除非用-o
重寫)。
這個參考頁沒有描述嵌入式 SQL 語言。關于該主題請參考第 35 章。
ecpg
接受下列命令行參數(shù):
-c
自動從 SQL 代碼生成確定的 C 代碼。當前,這對EXEC SQL TYPE
起效。
-C mode
設置一個兼容性模式。mode
可以是INFORMIX
,INFORMIX_SE
或ORACLE
。
-D symbol
定義一個 C 預處理器符號。
-h
處理頭文件。指定此選項后,輸出文件擴展名變?yōu)?code class="literal">.h而不是 .c
,默認輸入文件擴展名為.pgh
而不是.pgc
。此外,將強制啟用-c
選項。
-i
分析系統(tǒng)也包括文件。
-I directory
指定一個額外的包括路徑,用來尋找通過EXEC SQL INCLUDE
包括的文件。默認值是.
(當前目錄)、/usr/local/include
、在編譯時定義的PostgreSQL包括目錄(默認:/usr/local/pgsql/include
)以及
/usr/include
。
-o filename
指定ecpg
應該將它的所有輸出寫到給定的filename
。 寫-o-
將所有輸出發(fā)送到標準輸出。
-r option
選擇運行時行為。option
可以是下列之一:
no_indicator
不使用指示器而使用特殊值來表示空值。歷史上曾有數(shù)據(jù)庫使用這種方法。
prepare
在使用所有語句之前準備它們。libecpg 將保持一個預備語句的緩沖并當語句再被執(zhí)行時重用該語句。如果緩沖滿了,libecpg 將釋放最少使用的語句。
questionmarks
為兼容性原因允許使用問號作為占位符。在很久以前這被用作默認值。
-t
打開事務的自動提交。在這種模式下,每一個 SQL 命令會被自動提交,除非它位于一個顯式事務塊中。在默認模式中,命令只有當EXEC SQL COMMIT
被發(fā)出時才被提交。
-v
打印額外信息,包括版本和“包括”路徑。
--version
打印ecpg版本并退出。
-?
--help
顯示關于ecpg命令行參數(shù)的幫助并退出。
在編譯預處理好的 C 代碼文件時,編譯器需要能夠找到PostgreSQL包括目錄中的ECPG頭文件。因此,在調(diào)用編譯器時,你可能必須使用-I
選項(例如,-I/usr/local/pgsql/include
)。
使用帶有嵌入式 SQL 的 C 代碼的程序必須被鏈接到libecpg
庫,例如使用鏈接器選項-L/usr/local/pgsql/lib -lecpg
。
適合于安裝的這些目錄的值可以使用pg_config找到。
如果你有一個名為prog1.pgc
的嵌入式 SQL C 源文件,你可以使用下列命令序列創(chuàng)建一個可執(zhí)行程序:
ecpg prog1.pgc
cc -I/usr/local/pgsql/include -c prog1.c
cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: