bash
xrandr
xrandr -s 1680x1050
1.搭建QT开发环境
下载并图形化安装qt
bash
1.安装QT
chmod a+x qt-opensource-linux-x64-5.12.12.run
yum install libxkbcommon-x11
yum install gcc gcc-c++ make glibc-devel libstdc++-devel mesa-libGL mesa-libGL-devel
./qt-opensource-linux-x64-5.12.12.run
2.修改环境变量
vim ~/.bashrc
export QTDIR=/opt/Qt5.12.12/5.12.12/gcc_64 # Qt 主程序路径
export PATH=$QTDIR/bin:$PATH
export QT_PLUGIN_PATH=/opt/Qt5.12.12/5.12.12/gcc_64/plugins/sqldrivers/ # Qt 插件路径(如数据库驱动)
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export ODBCDM_HOME=/usr/local/unixODBC # ODBC
export PATH=$ODBCDM_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ODBCDM_HOME/lib:$LD_LIBRARY_PATH
export DMHOME=/home/dmdba/dmdbms #DM 这部分添加上 root才能访问。否则只能dmdba访问
export LD_LIBRARY_PATH=$DMHOME/bin:$LD_LIBRARY_PATH
source ~/.bashrc
验证
qmake -v
2.QT访问达梦
2.1Linux 环境创建 ODBC 数据源
bash
tar -zxvf libqsqlodbc.so.tar.gz -C /root/下载/QODBC/
unzip libqsqlodbc.zip -d /root/下载/QODBC/
把libqslodbc.so 复制到 qt 目录下的 sqldrivers 目录下
bash
1.ODBC安装
1.1下载文件 并解压
tar -zxvf unixODBC-2.3.12.tar.gz -C /home/ODBC
1.2.编译安装
cd unixODBC-2.3.12
./configure --prefix=/usr/local/unixODBC --sysconfdir=/etc # 配置unixODBC的安装路径为/usr/local/unixODBC
make
make install
1.3 验证ODBC是否安装成功?
odbc_config --version
odbcinst -j
2.让环境认识ODBC 配置环境变量
vim ~/.bashrc
export ODBCDM_HOME=/usr/local/unixODBC
export PATH=$ODBCDM_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ODBCDM_HOME/lib:$LD_LIBRARY_PATH
source ~/.bashrc
3.ODBC配置DM数据库驱动。
3.1 /etc/odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /home/dmdba/dmdbms/bin/libdodbc.so
3.2 /etc/odbc.ini
[dm8]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = 192.168.9.91
UID = SYSDBA
PWD = Int@4001093999
TCP_PORT = 5236
3.3 验证:用安装数据库的用户名
su - dmdba
isql dm8

2.2QT代码
cpp
#include <QCoreApplication>
#include <QtSql>
#include <QDebug>
#include <QSqlDatabase>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug()<<QSqlDatabase::drivers();
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("192.168.9.91");
db.setPort(5236);
db.setDatabaseName("dm8");
db.setUserName("SYSDBA");
db.setPassword("Int@4001093999");
if (db.open())
qDebug() << "connect ok!";
else
{
qDebug() << "connect fail! " << db.lastError().text().toLatin1();
}
return a.exec();
}