从 Delphi 7 连接到 PostgreSQL 时出错

Posted

技术标签:

【中文标题】从 Delphi 7 连接到 PostgreSQL 时出错【英文标题】:Error when Connecting to PostgreSQL from Delphi 7 【发布时间】:2013-09-30 10:41:17 【问题描述】:

我想学习如何在 Delphi 中使用 ADO。我正在尝试编写一个 Delphi 7 应用程序,它可以简单地连接到数据库并运行一些查询。我被困在“连接到数据库”部分本身。

我使用 Delphi 7 和 PostgreSQL 9.2 作为数据库,我的操作系统是 Windows 7。

我从Here 下载了 PostgreSQL OLE DB 提供程序,并按照自述文件中的说明进行了注册:

安装说明: 要安装此软件,请将 PGOLEDB.DLL 和 LIBPQ.DLL 复制到您的系统中 目录。接下来,以管理员身份运行“regsvr32 PGOLEDB.DLL”。你应该得到一个对话框 提示“注册成功”的消息。

然后我尝试连接数据库如下-

interface
const
    ConnectionString : string = 'Provider=PostgreSQL OLE DB Provider;Data Source=localhost;' +
                                'User ID=postgres;password=sd123;timeout=50000;';

implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
    Connection.ConnectionString := ConnectionString;
    Connection.LoginPrompt := true;
    Connection.Connected := true;
end;

当我运行程序时,它没有显示登录提示。相反,它给出了错误“Expected Authentication Request from server, but received -”。我试图在互联网上找到解决方案,但没有找到任何东西。我该如何解决这个错误?

【问题讨论】:

【参考方案1】:

PostgreSQL OLE DB 驱动程序非常旧且不受支持。就个人而言,我从来没有成功使用过它。从http://www.postgresql.org/ftp/odbc/versions/msi/ 下载并安装最新的 32 位 ODBC 驱动程序,然后改用它。使用 Delphi 中的 ADO,您需要使用 OLE DB Driver for ODBC 并将其配置为使用 PostgreSQL ODBC Driver,但所有内容都可以通过连接对话框进行配置。

【讨论】:

以上是关于从 Delphi 7 连接到 PostgreSQL 时出错的主要内容,如果未能解决你的问题,请参考以下文章

使用 SDBC 从 libreoffice 基地连接到 PostgreSQL

PHP 无法在 CentOS 7 上连接到 PostgreSQL

从容器内部连接到 PostgreSQL 容器的问题

从外部连接到 docker 容器中的 Postgresql

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

从 grafana 连接到 postgresql