欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

QT 连接SQLServer

程序员文章站 2022-06-14 19:54:08
...

QtSql虽说提供了通用的数据库访问接口,可是有些数据库就是不太通用, 在windows下用QT连接sqlserver,折腾了半天. 一. 配置 1. 启用TCP/IP 安装好sqlserver2005后, 开始菜单找到 配置工具-SQL Server配置管理器: SQLEXPRESS 的协议,启用TCP/IP,启用相应IP地址;

QtSql虽说提供了通用的数据库访问接口,可是有些数据库就是不太通用, 在windows下用QT连接sqlserver,折腾了半天.

一. 配置

1. 启用TCP/IP

安装好sqlserver2005后, 开始菜单找到 配置工具->SQL Server配置管理器:

SQLEXPRESS 的协议,启用TCP/IP,启用相应IP地址; SQL Native Client 配置, 客户端协议, 启动TCP/IP, TCP/IP属性设置监听1433端口

2. 启用远程连接

配置工具->SQL Server外围应用配置器-> 本地连接和远程连接,勾选同时使用TCP/IP和named pipes即可

二. 测试

方法一:

Cpp代码 QT 连接SQLServer

  1. QSqlDatabase OpenDB()
  2. {
  3. QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
  4. // 注意,对于express版本数据库, 一定要加\\sqlexpress这种后缀
  5. QString dsn="DRIVER={SQL SERVER};SERVER=192.168.10.22\\sqlexpress;DATABASE=sqlscada";
  6. db.setDatabaseName(dsn);
  7. db.setUserName("sa");
  8. db.setPassword("scada");
  9. if(!db.open())
  10. {
  11. qDebug("Error:%s",qPrintable(db.lastError().text()));
  12. return db;
  13. }
  14. return db;
  15. }

连接数据库时, 一直连不上报错: ConnectionOpen (Invalid Instance()) , 连接无效, 结果发现微软对express版本数据库是有限制的, 在SERVER字段添加\\sqlexpress这样后缀, 连接OK

方法二: 设置数据源,指定dsn即可

控制面板->系统和安全->管理工具->数据源(ODBC)

QT 连接SQLServer

QT 连接SQLServer

代码:

Cpp代码 QT 连接SQLServer

  1. QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
  2. db.setDatabaseName("testdsn");
  3. db.setUserName("sa");
  4. db.setPassword("scada");