.TH "ECPG" "1" "2003-11-02" "Application" "PostgreSQL Client Applications" .SH NAME ecpg \- 嵌入的 SQL C 預處理器 .SH SYNOPSIS .sp \fBecpg\fR\fR [ \fR\fB\fIoption\fB\fR...\fB \fR\fR]\fR\fR \fIfile\fR...\fR\fR .SH "DESCRIPTION 描述" .PP \fBecpg\fR 是一個嵌入的用於C 語言的 SQL 預編譯器。 它把嵌有 SQL 語句的 C 程式透過將 SQL 呼叫替換成特殊的函式呼叫的方法轉換成普通的 C 程式碼。 然後輸出的檔案就可以用任何 C 編譯工具進行處理。 .PP \fBclusterdb\fR 將把命令列上給出的每個輸入檔案轉換成對應的 C 輸出檔案。 輸入檔案最好有 .pgc 的副檔名, 這樣,這個擴充套件將被替換成 .c 來決定輸出檔名。 如果輸入檔案的擴充套件不是 .pgc,那麼輸出檔名將透過在全檔名後面附加 .c 來生成。 輸出檔名也可以用 -o 選項覆蓋。 .PP 本手冊頁並不描述嵌入的 SQL 語句,參閱 Chapter 29 獲更多資訊。 .SH "OPTIONS 選項" .PP \fBclusterdb\fR 接受下列命令列引數: .TP \fB-c\fR 為 SQL 程式碼自動生成某種 C 程式碼。目前,這個選項可以用於 EXEC SQL TYPE。 .TP \fB-C \fR\fImode\fR 設定一個相容模式。mode 可以是 INFORMIX 或者 INFORMIX_SE。 .TP \fB-D \fR\fIsymbol\fR 定義一個 C 預編譯器符號。 .TP \fB-i\fR 同時也分析系統包含檔案。 .TP \fB-I \fIinclude-path\fB\fR 宣告一個附加的包含路徑。用於尋找透過 EXEC SQL INCLUDE 包含的檔案。預設是 .(當前目錄), /usr/local/include, 在編譯時定義的PostgreSQL 包含路徑(預設: /usr/local/pgsql/include)和 /usr/include。順序如上。 .TP \fB-o \fIfilename\fR 宣告ecpg應該把它的所有輸出寫到給出的 filename裡。 .TP \fB-t\fR 開啟自動提交模式。在這種模式象,每個查詢都自動提交, 除非它是包圍在一個明確的事務塊中。在預設模式下, 命令只是在發出 EXEC SQL COMMIT 的時候提交。 .TP \fB-v\fR 列印額外的資訊,包括版本和包含路徑。 .TP \fB--help\fR 顯示一個命令用法的簡單摘要,然後退出。 .TP \fB--version\fR 顯示版本資訊,然後退出。 .SH "NOTES 注意" 在編譯預處理的 C 程式碼檔案的時候,編譯器需要能夠找到 PostgreSQL 包含目錄裡面的 ECPG 標頭檔案。因此,我們在呼叫編譯器的時候可能需要使用 -I (比如,-I/usr/local/pgsql/include)。 使用了嵌入 SQL 的 C 程式碼必須和 libecpg 庫連結,比如,使用這樣的連結選項: -L/usr/local/pgsql/lib -lecpg 這些目錄的實際值可以透過 \fIpg_config\fP(1) 找到。 .SH "EXAMPLES 例子" .PP 如果你有一個叫 prog1.pgc 的嵌入 SQL 的 C 原始碼,你可以用下面的命令序列建立一個可執行程式: .sp .nf ecpg prog1.pgc cc -I/usr/local/pgsql/include -c prog1.c cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg .sp .fi .SH "譯者" .B Postgresql 中文網站 .B 何偉平 .SH "跋" .br 本頁面中文版由中文 man 手冊頁計劃提供。 .br 中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR