Win10 64位系统Qt5.9.7连接神通数据库7.0

本文档详细记录了在Win10 64位系统中,使用Qt5.9.7如何连接神通数据库7.0的过程,包括数据库的安装、服务检查、连接测试以及Qt中数据源的配置和连接代码实现。此外,还解决了可能出现的连接问题,并提供了系统依赖库的部署方法。
摘要由CSDN通过智能技术生成

Win10 64位系统Qt5.9.7连接神通数据库7.0

     因为国产化的原因,项目后期数据库要使用神通数据库,将自己安装测试过程记录如下,以便后期自查:

当前系统环境:

 

Qt版本: 5.9.7

神通数据库7.0_win64安装:

  1. 点击setup.exe,一路下一步,直至结束。参考安装包自带的《神通数据库-数据库快速入门.pdf》中7.1
  2. 安装完成后,电脑重启,打开系统服务,查看数据库服务是否“正在运行”。查看服务如下:

 

 

若没有运行,右键->“属性”->”启动”,等待启动成功即可。

测试数据库是否安装成功

在系统左下角“程序”中找到“神通数据库”,选择“SQL交互工具”,打开SQL交互工具软件后,“文件”->“连接”,

主机地址:localhost

数据库名:在你安装数据库后,会自动让创建一个数据库,就使用那个数据库名称就行

用户名称:SYSDBA

密码:初始默认密码:szoscar55

点击“连接”,如果成功,则进入数据库列表中。

 

若想修改登录密码:

 

执行后,会给出提示。关掉sql交互工具,重新连接会发现密码已经修改,需要使用新密码登录。

至此,数据库安装成功。

Qt连接数据库:

  1. 系统中配置数据库驱动源

有网友说在C:\Windows\System32\odbcad32.exe中“添加” -> 选择OSCAR ODBC DRIVER,可是当时我的电脑打开没有这个选项,

(图中的是按照下面的方法添加后才出现的)

最后我在“控制面板”->“管理工具”->”ODBC数据源”中进行的添加数据源操作

 

 

 

至此,数据源添加成功。

QT测试:

打开QtCreator,新建QMainWindow类工程

界面设计:

 

为了代码少写,所以在界面将各个控件的初始值已经赋上了。

主要代码:

.h:

#include <QDialog>

#include <QSqlQuery>

#include <QSqlRecord>

#include <QDebug>

#include <QSqlDatabase>

#include <QSqlDriver>

#include <QSqlError>

.cpp:

//点击按钮“连接”触发槽函数:

void Dialog::connectBtnSlot()

{

    QString hostStr = ui->hostNameLineEdit->text();

    QString dbNameStr = ui->databaseNameLineEdit->text();

    QString userStr = ui->userNameLineEdit->text();

    QString passwordStr = ui->passwordLineEdit->text();

        QSqlDatabase sd;

        sd = QSqlDatabase::addDatabase("QODBC");

        const QString strName(QString("DRIVER={OSCAR ODBC DRIVER};SERVER=%1;UID=%2;PWD=%3;DATABASE=%4;Port=%5")

                                  .arg(hostStr)                //服务地址

                                  .arg(userStr)                  //用户名称

                                  .arg(passwordStr)                   //用户密码

                                  .arg(dbNameStr)              //数据库实例

                                  .arg(2003));                //端口号

            sd.setDatabaseName(strName);



    db.setHostName(hostStr);

    db.setDatabaseName(dbNameStr);

    db.setUserName(userStr);

    db.setPassword(passwordStr);

    if(sd.open())

    {

        ui->infoTextEdit->append("Connect success.");

        ui->infoTextEdit->append(tr("current hostname: %1").arg(hostStr));

        ui->infoTextEdit->append(tr("current database: %1").arg(dbNameStr));

        ui->infoTextEdit->append(tr("current username: %1").arg(userStr));

        ui->infoTextEdit->append(tr("current password: %1").arg(passwordStr));

    }

    else

    {

        //ui->infoTextEdit->append("Connect failed.");

        QString errorInfo = sd.lastError().text();

        ui->infoTextEdit->append(errorInfo);

    }

    query = QSqlQuery(sd);

}

 

注:如果点击“连接”后还是无法连接,查看是否是因为缺库的原因。我一般是在运行前,先用Qt自带的命令将所依赖的库拷贝过去,如下图:

 

点击打开命令框,输入windeployqt exe所在路径(尽量避免中文路径),回车,这样就把Qt相关库拷过来了。

再次测试,一般就没有什么问题了。

此文章只是因本人记性较差,用来记录,难免有错误的地方,望大家多多包涵,批评指正。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值