2019更新关于linux下qt连接sqlserver的问题


本文只针对QODBC驱动正常,odbc,freetds已安装的伙伴,然后现在配置 及qt连接数据库

1.源码编译安装odbc,freetds

odbc:下载
freetds:下载
安装参考点这

2.配置刚安装的软件+截图证明

#配置freetds.conf(感觉freetds.conf这个文件不用管,就先照着配置一下吧)
 	A typical Microsoft server
	[SQLSERVER] 
	host = 127.0.0.1\\sqlexpress 
	port = 1433
	tds version = 1.00.109
	client charset = UTF-8

在这里插入图片描述

#配置odbc:odbc.ini文件
[remotesql] //数据源名称,可自己命名,在qt中会用到这个名称,这里为了方便区分我用的远程服务					
Description = sqlserver connection	#相当于备注一下这个文件干嘛的	
Driver = FreeTDS #连接sqlserver的fds驱动名,在odbcinst.ini中配置				
TDS_Version = 8.0				
Trace = On					
TraceFile = stderr				
Server = 服务器ip... #服务器名称,若远程数据库,则是服务器ip
Database = 学生成绩管理系统  #要连接的数据库,
Port = 1433

在这里插入图片描述

# 配置odbc:odbcinst.ini 指向freetds的驱动文件
[FreeTDS]//驱动名,可自己命名,在odbc.ini中会用到			
Description=FreeTDS driver #相当于备注一下这个文件干嘛的			
Driver=/usr/local/freetds-1.00.109/lib/libtdsodbc.so  #在你自己的tds安装目录下的,找到这个驱动文件libtdsodbc.so	

在这里插入图片描述

3.连接数据库

#注意观察上述odbc.ini文件的配置情况
bool conndb::DaBa()
{
     QSqlDatabase db;
     if(QSqlDatabase::contains("qt_sql_default_connection"))
     {
        db = QSqlDatabase::database("qt_sql_default_connection");
     }
     else
     {
        db=QSqlDatabase::addDatabase("QODBC");
     }
    db.setDatabaseName("localsql");//注意odbc.ini文件的配置情况
    db.setUserName("sa");
    db.setPassword("@sql2012");
    db.open();
    if(db.open())
    {
        qDebug()<<"connect to server successfully";
        return true;
    }
    else
    {
        qDebug()<<"connect to server failed!!";
        printf("%s\n",db.lastError().text().toLatin1().data());
        return false;
    }
}
#效果图,通过配置odbc,freetds这种方法实现linux下的qt连接SQLServer可以发现在以往的教材中这行代码不需要用到。。。
       QString dsn="DRIVER={FreeTDS};SERVER=;DATABASE=学生成绩管理系统";//

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值