windows远程连接银河麒麟系统中的人大金仓数据库

以下来自人大金仓的官方:

概述

由微软提出的ODBC(开放式数据库互连),为访问数据库提供统一的接口(API)。其调用流程为:首先应用程序调用驱动管理器以加载与数据库相对应的ODBC驱动,而后在通过ODBC驱动与数据库建立连接通信。Kingbase ODBC驱动程序为动态链接库可以免安装,在Windows中的驱动为"kdbodbc30a.dll"以及在Linux中的驱动为"kdbodbcw.so"。

ODBC驱动引用

Windows驱动引用

1.通过登录官网www.kingbase.com.cn-产品与方案-通用性数据库-下载试用-了解详情-接口驱动,找到ODBC-WINDOWS获取ODBC Windows版驱动。

2.将获取到的官网驱动进行解压,解压后有两种版本的驱动,一种是64位版本,另一种是86位版本。在后续引用时需根据电脑的位数而进行选择(系统位数查看方法:使用"Win+R"组合键打开"运行对话框",在对话框中输入"msinfo32.exe"后点击确认按钮便能在"系统信息"中查看得到电脑的位数),只有电脑的位数与ODBC驱动的位数一致时,才能正常使用。如下图所示,可以查看得到系统为64位的版本,因此后续应选择"x64_ANSI_Release"文件中的ODBC驱动。

3.在确定使用的ODBC版本后,通过"Win+R"组合键打开"运行对话框",在对话框中输入"regedit"打开注册表编辑器。在下拉项"HKEY_LOCAL_MACHINE\SOFTWARE\ODBC"中选择"ODBCINST.INI",右击选择"新建-项"添加ODBC驱动。如下图所示,添加了名为"KingbaseES 8.6 ODBC Driver ANSI"的驱动。

4.新建驱动完成后,左键点击"KingbaseES 8.6 ODBC Driver ANSI"便能查看驱动的详细信息,若是新建驱动则需重新添加驱动信息如下图所示:

其中"Driver"、"Setup"属性的值为上述操作步骤2中与电脑位数的一致的.dll文件的路径与驱动名,其形式为"`PATH`\kdbodbc30a.dll"。

5.添加完整驱动信息后,还需在"ODBCINST.INI"中的"ODBC Drivers"中添加,新建的驱动名(必须与步骤3中新建的驱动名一致),如下图所示。

至此,Windows中ODBC驱动已经注册完成。

6.在ODBC数据源中添加新注册的驱动,首先打开ODBC数据源管理器:"开始"-"设置"-"控制面板"-"管理工具"-"数据源(ODBC)"(若是Windows11中"开始"-"设置"-"控制面板"-"Windows工具"-"ODBC数据源")。而后点击"系统DSN"-"添加"按钮,最后在弹出的对话框"创建新数据源"的窗口中选择上述新建的ODBC驱动。点击"完成"按钮后便会弹出"KingbaseES ODBC数据源配置"对话框,如下图所示:

7.在"KingbaseES ODBC数据源配置"对话框输入相应的要连接KingbaseES服务器端的信息,点击"测试"按钮后便可测试所配置的数据源能否连接上服务器。如下图弹出"Connection test"窗口并显示连接成功字样。

至此,Windows中驱动与数据源创建已完成,后续可使用该驱动或数据源连接服务器。

复制代码
#include "mainwindow.h"

#include <QApplication>
#include <QSqlDatabase>
#include <QtSql/QSqlError>
#include <QDebug>

const QString host = "192.168.22.236";
const int port = 54321;
const QString dbName = "JTV";
const QString user = "system";
const QString password = "system";

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    db.setHostName(host);
    db.setDatabaseName(dbName);
    db.setUserName(user);
    db.setPassword(password);
    db.setPort(port);
    db.setConnectOptions("SQL_ATTR_CONNECTION_TIMEOUT=2");

    db.open();
    if (!db.isOpen()) {
        qDebug() << db.lastError();
    }
    else{
        qDebug() << "connect is success!" << endl;
    }
    db.close();

    MainWindow w;
    w.show();
    return a.exec();
}
相关推荐
xchenhao5 小时前
基于 Flutter 的开源文本 TTS 朗读器(支持 Windows/macOS/Android)
android·windows·flutter·macos·openai·tts·朗读器
帽儿山的枪手7 小时前
追踪网络流量就这么简单 | 进阶篇 | conntrack
linux·windows·网络协议
兮动人8 小时前
Windows 11 系统关键文件夹详解及安全清理指南
windows·安全
LabVIEW开发12 小时前
LabVIEW调用外部DLL
windows·labview·labview知识·labview功能·labview程序
biubiubiu070612 小时前
FFmpeg Windows安装
windows·ffmpeg
哆啦A梦——14 小时前
dll文件缺失解决方法
windows
漠效15 小时前
Duplicate cleaner pro 的使用技巧
windows·经验分享
DogDaoDao15 小时前
Windows下VScode配置FFmpeg开发环境保姆级教程
windows·vscode·ffmpeg·音视频·gcc
Rudon滨海渔村17 小时前
exe文件图标修改器 - exe图标提取器(ico、png) - 修改360文件夹的图标为windows自带的图标
windows
无名小猴17 小时前
Windows软件卸载
windows