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即可
二. 测试
方法一:
- QSqlDatabase OpenDB()
- {
- QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
- // 注意,对于express版本数据库, 一定要加\\sqlexpress这种后缀
- QString dsn="DRIVER={SQL SERVER};SERVER=192.168.10.22\\sqlexpress;DATABASE=sqlscada";
- db.setDatabaseName(dsn);
- db.setUserName("sa");
- db.setPassword("scada");
- if(!db.open())
- {
- qDebug("Error:%s",qPrintable(db.lastError().text()));
- return db;
- }
- }
连接数据库时,一直连不上报错: ConnectionOpen (Invalid Instance()) ,连接无效,结果发现微软对express版本数据库是有限制的,在SERVER字段添加\\sqlexpress这样后缀,连接OK
方法二: 设置数据源,指定dsn即可
控制面板->系统和安全->管理工具->数据源(ODBC)
代码:
QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("testdsn");
db.setUserName("sa");
db.setPassword("scada");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。