2012-12-23 79 views
2

我想將我的C++客戶端連接到PostgreSQL數據庫。我不斷收到otlv4.h | 12406 |未定義的引用'SQLFreeHandle @ 8'以及其他許多未定義的引用錯誤。嘗試使用OTL連接到我的PostgreSQL服務器

要獲得頭文件去http://otl.sourceforge.net/otl3_down.htm

#include <iostream> 

using namespace std; 

#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 
// #define OTL_ODBC_UNIX // uncomment this line if UnixODBC is used 
#define OTL_ODBC_ALTERNATE_RPC 
#if !defined(_WIN32) && !defined(_WIN64) 
#define OTL_ODBC 
#else 
#define OTL_ODBC_POSTGRESQL // required with PG ODBC on Windows 
#endif 
#include "otlv4.h" // include the OTL 4.0 header file 

otl_connect db; // connect object 

int main() 
{ 

    otl_connect::otl_initialize(); // initialize ODBC environment 

    db.rlogon("postgres/[email protected]"); 

    db.commit(); 

    cout << "Hello world!" << endl; 

    db.logoff(); // disconnect from ODBC 
    return 0; 
} 
+0

您是否安裝了[PgODBC] [1]? [1]:http://www.postgresql.org/ftp/odbc/versions/msi/ – mvp

+0

PostgreSQL35W雖然 –

+0

是的,我有它安裝 –

回答

0

當我使用ODBC沒有從Windows到PostgreSQL的連接,我用DSN的方法。它需要從用戶角度進行零輸入 - 用戶不需要知道ODBC是什麼以及如何配置ODBC源(DSN)。

使用DSN-less連接的典型方式是使用字符串像下面爲您的ODBC連接字符串:

Driver=PostgreSQL;Server=hostname;Database=mypgdb;UID=username;PWD=password 

注意,驅動程序名稱可能需要根據版本和ANSI VS Unicode的口味進行調整。

相關問題