使用libpq連接數據庫
更新時間 2023-06-02 15:52:18
最近更新時間: 2023-06-02 15:52:18
分享文章
本節介紹了如何使用libpq連接云數據庫GaussDB 數據庫。
云數據庫GaussDB 主備版部署形態未對此接口在應用程序開發場景下的使用做驗證。因此對使用此接口做應用程序開發存在的風險未知,故不推薦用戶使用此套接口做應用程序開發。推薦用戶使用ODBC或JDBC接口來替代。
前提條件
編譯并且鏈接一個libpq的源程序,需要做下面的一些事情:
- 獲取libpq驅動,
- 解壓GaussDB-Kernel-VxxxRxxxCxx-EULER-64bit-Libpq.tar.gz文件,其中include文件夾下的頭文件為所需的頭文件,lib文件夾中為所需的libpq庫文件。
說明:
除libpq-fe.h外,include文件夾下默認還存在頭文件postgres_ext.h,gs_thread.h,gs_threadlocal.h,這三個頭文件是libpq-fe.h的依賴文件。
- 包含libpq-fe.h頭文件:
#include <libpq-fe.h>
- 通過-I directory選項,提供頭文件的安裝位置(有些時候編譯器會查找缺省的目錄,因此可以忽略這些選項)。如:
gcc -I (頭文件所在目錄) -L (libpq庫所在目錄) testprog.c -lpq
- 如果要使用制作文件(makefile),向CPPFLAGS、LDFLAGS、LIBS變量中增加如下選項:
CPPFLAGS += -I (頭文件所在目錄)
LDFLAGS += -L (libpq庫所在目錄)
LIBS += -lpq
常用功能示例代碼
此處以示例來說明連接方式:
示例1:
/*testlibpq.c
*/
#include
示例2:
/*testlibpq2.c?????測試外聯參數和二進制I/O。?在運行這個例子之前,用下面的命令填充一個數據庫??CREATE TABLE test1 (i int4, t text);?INSERT INTO test1 values (2, 'ho there');?期望的輸出是:??tuple 0: got?i = (4 bytes) 2?t = (8 bytes) 'ho there'??
*/
#include