您的位置:首页 > 健康 > 养生 > 进博会上海2022_湛江做网站_国内专业seo公司_semi

进博会上海2022_湛江做网站_国内专业seo公司_semi

2025/4/21 22:55:23 来源:https://blog.csdn.net/piaopiaolanghua/article/details/147283537  浏览:    关键词:进博会上海2022_湛江做网站_国内专业seo公司_semi
进博会上海2022_湛江做网站_国内专业seo公司_semi

一、概述

以下主要在Windows下验证连接PolarDB PostgreSQL版(阿里云兼容 PostgreSQL的PolarDB版本)。Linux下类似,ODBC方式则需要配置odbcinst.ini和odbc.ini。

二、代码

以下为完整代码,包含两种方式连接数据库,并查询表。

#include <QCoreApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QtSql>
#include <QDebug>//通过sqldrivers/qsqlpsql.dll连接的方式连接PostgreSQL或PolarDB PostgreSQL版
int test1()
{// 创建数据库连接QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");db.setHostName("127.0.0.1"); // 数据库服务器IPdb.setPort(5432);            // 默认端口db.setDatabaseName("test");  // 数据库名称db.setUserName("postgres");  // 用户名db.setPassword("123456");    // 密码if (!db.open()){qDebug() << "Connection failed:" << db.lastError();return -1;}qDebug() << "Connected to PostgreSQL!";// 执行查询QSqlQuery query;if (query.exec("SELECT * FROM arc")){while (query.next()){QString value0 = query.value(0).toString();qDebug() << value0;}} else{qDebug() << "Query error:" << query.lastError();}db.close();
}//通过创建ODBC数据源的方式连接PostgreSQL或PolarDB PostgreSQL版, 需要先配置好ODBC数据源
int test2()
{QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");------------- 配置连接字符串(方式1:直接参数,测试通过) -------------------//QString connStr = "DRIVER={PolarDB2 ANSI(x64)};"  // 驱动名称需与系统配置一致//                  "Server=127.0.0.1;"            // 服务器IP//                  "Port=5432;"                   // 端口//                  "Database=test;"               // 数据库名//                  "Uid=postgres;"                // 用户名//                  "Pwd=123456;";                 // 密码//db.setDatabaseName(connStr);  // 通过连接字符串设置参数------------- DSN 中已存储密码等参数?(方式2,测试通过)-------------db.setDatabaseName("DSN=PostgreSQL30;DRIVER={PolarDB2 ANSI(x64)};");if (!db.open()) {qDebug() << "Connection failed:" << db.lastError();return -1;}qDebug() << "Connected via ODBC!";QSqlQuery query;if (query.exec("SELECT * FROM arc")) {while (query.next()) {QString value0 = query.value(0).toString();qDebug() << value0;}} else {qDebug() << "Query error:" << query.lastError();}db.close();return 0;
}int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);qDebug() << "drivers:" << QSqlDatabase::drivers();test2();return 0;
}

三、参考依赖库

注:Windows下,debug版本测试的,release版本类似。除了qsqlpsqld.dll和libpq.dll,还需要相关的依赖库。

D:\test\debug>dir /b /s

D:\test\debug\libcrypto-3-x64.dll
D:\test\debug\libiconv-2.dll
D:\test\debug\libintl-9.dll
D:\test\debug\libpq.dll
D:\test\debug\libssl-3-x64.dll
D:\test\debug\libwinpthread-1.dll
D:\test\debug\main.obj
D:\test\debug\Qt5Cored.dll
D:\test\debug\Qt5Sqld.dll
D:\test\debug\sqldrivers
D:\test\debug\TestSqlDrivers.exe
D:\test\debug\sqldrivers\qsqlited.dll
D:\test\debug\sqldrivers\qsqlodbcd.dll
D:\test\debug\sqldrivers\qsqlpsqld.dll

D:\test\debug>

四、Windows下数据源配置参考

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com