編譯psqlODBC時,可以指定是否使用libpq。本來以為使用libpq時,psqlODBC會像ecpg那樣,會對libpq的api進行完整的封裝。但是看過代碼後發現,事情不是這樣。psqlODBC隻在一些特定的場景下把lippq當作一個用于建立連接配接的工具,之後就把libpq中的socket取出來直接用。
在下面3種情況psqlODBC會使用libpq建立連接配接
1)使用者名未指定
2)sslmode為disable以外的值
3)psqlODBC和服務端進行認證時,發現服務端使用的是psqlODBC自己不支援的認證方式
psqlODBC支援的認證方式可以在編譯時通過宏設定,比如USE_SSPI,USE_GSS(還有一個USE_KRB5,這個在手冊裡沒有記錄)。
參考:
<a href="http://psqlodbc.projects.pgfoundry.org/">http://psqlodbc.projects.pgfoundry.org/</a>