PG數據庫 (ECPG - C中的嵌入式SQL)

2020-08-12 23:47:38
  1. 概念
    一個嵌入式SQL程式由一種普通程式語言編寫的程式碼(這裏是C)和位於特殊標記小節中的SQL命令混合組成。要構建該程式,原始碼(.pgc) 首先會通過嵌入式SQL前處理器,它會將原始碼轉換爲一個普通的C程式 (.c),並且後來它能夠被一個C編譯器所處理。轉換過的ECPG應用會通過嵌入式SQL庫(ecpglib)呼叫libpq庫中的函數,並且與PostgresSQL伺服器使用普通的前端/後端協定通訊。

嵌入式SQL在爲C程式碼處理SQL命令方面比起其他方法具有優勢。首先,它會搞定向你的C程式變數傳遞或讀取資訊時的繁文縟節。其次,程式中的SQL程式碼在編譯時就會被檢查以保證語法正確性。第三,C中的嵌入式SQL是在SQL標準中指定的並且受到很多其他SQL數據庫系統的支援。

爲嵌入式SQL介面編寫的程式是插入了用於執行數據庫相關動作的特殊程式碼的普通的 C 程式。這種特殊程式碼總是具有這樣的形式:

EXEC SQL …;
這些語句在語法上取代了一個 C 語句。取決於特定的語句,它們可以出現在全域性層面或者是一個函數中。嵌入式 SQL語句遵循普通SQL程式碼的大小寫敏感性規則, 而不是 C 的大小寫敏感性規則。它們也允許巢狀的 C 風格註釋(SQL 標準的一部分)。 不過,程式的 C 部分遵循 C 的標準不接受巢狀註釋。