尝试使用 OTL 连接到我的 PostgreSQL 服务器

Posted

技术标签:

【中文标题】尝试使用 OTL 连接到我的 PostgreSQL 服务器【英文标题】:Trying to use OTL to connect to my PostgreSQL server 【发布时间】:2012-12-23 07:04:11 【问题描述】:

我正在尝试将我的 c++ 客户端连接到 PostgreSQL 数据库。我不断收到 otlv4.h|12406|undefined reference to `SQLFreeHandle@8' 和许多其他未定义的引用错误。

要获取头文件,请转到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/changeme@numbers");

    db.commit();

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

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

【问题讨论】:

您是否安装了 [PgODBC][1]? [1]:postgresql.org/ftp/odbc/versions/msi 是的,我已经安装好了 SQLFreeHandle 和任何其他启动 SQL 的函数都是 ODBC API 函数。它们由您应该链接到的 ODBC 驱动程序管理器提供。无论您是否有 ODBC 驱动程序,您都应该链接到 ODBC 驱动程序管理器。 【参考方案1】:

当我使用 ODBC 从 Windows 连接到 PostgreSQL 时,我使用了无 DSN 的方法。从用户的角度来看,它需要零输入 - 用户不需要知道 ODBC 是什么以及如何配置 ODBC 源 (DSN)。

使用无 DSN 连接的典型方法是使用如下字符串作为 ODBC 连接字符串:

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

请注意,驱动程序名称可能需要根据版本和 ANSI 与 Unicode 风格进行调整。

【讨论】:

以上是关于尝试使用 OTL 连接到我的 PostgreSQL 服务器的主要内容,如果未能解决你的问题,请参考以下文章

无法解析符号 otl_connect(otl_connect 类不包括)

如何使用 R 连接到远程 PostgreSQL,需要证书验证

使用 Ngrok 从 AWS Lambda 连接到本地 PostgreSQL

无法连接到 heroku PostgreSQL 数据库

使用 SDBC 从 libreoffice 基地连接到 PostgreSQL

PlaySlick 数据库连接到 PostgreSQL