QT 连接SQLServer

11 篇文章 0 订阅

      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;
	}
	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");

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值