Qt5.4.1 无法连接SqlServer

QSqlDatabase db;

QString servername="(local)";

QString dbname="QtSqlTest";
db = QSqlDatabase::addDatabase("QODBC");

QString dsn=QString("DRIVER={SQL SERVER};SERVER=%1;DATABASE=%2;").arg(servername).arg(dbname);

db.setDatabaseName(dsn);

db.setUserName("sa");

db.setPassword("123456");


    ![图片说明](https://img-ask.csdn.net/upload/201712/17/1513484542_656481.png)

5个回答

看你报什么错,一般是26错误和40错误,要么是你的连接字符串没有写对,要么是sql server的配置问题(比如没有启用远程连接、没有启用tcp/ip、防火墙问题等等)
还有就是你的数据库驱动的配置。
最好你把错误信息贴出来。

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复destory27: 这个不一定,你程序的链接字符串和数据源没关系。
2 年多之前 回复
destory27
destory27 手动配置数据源,连接是没问题的
2 年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复destory27: 那就是应该我说的
2 年多之前 回复
destory27
destory27 "[Microsoft][ODBC SQL Server Driver][Shared Memory]SQL Server 不存在或访问被拒绝 [Microsoft][ODBC SQL Server Driver][Shared Memory]ConnectionOpen (Connect()). QODBC3: Unable to connect"
2 年多之前 回复

QString dsn=QString("DRIVER={SQL SERVER};SERVER=%1;DATABASE=%2;").arg(servername).arg(dbname);
这句放在最后 先配置连接参数 再试试连接

qq_41426004
qq_41426004 问题不在qDebug() < < query.size();上,事实上,这条Insert语句并没有真正执行,也就是说记录没有被插入。或者说SQL语句没有被正常执行。这才是本贴的本质,请问如何解决? 在国外的论坛上查到说可能是QT的编码和SQL2000的编码不一致造成的,我把SQL2000设成E文仍然如此,请连接过SQL2000、2005的并且操作成功的给点支持。 另,据在国外论坛上查得,SQL2008可能不会存在这样的问题,正在下,到时候测试一下,如果成果我再上来反馈。 想来,用QT的人是不是都很少用SQLSERVER,也都很少在Win平台下开发吧
2 年多之前 回复
destory27
destory27 不行
2 年多之前 回复

SQL2000设成E文仍然如此,请连接过SQL2000、2005的并且操作成功的给点支持

放弃吧 当时我也搞过 qt链接 sqlserver没搞赢 需要安装第三方驱动 你去谷歌搜搜吧 建议用 mysql 或者内置 的 sqlite数据库

未解决此问题, 最终手动配置数据源完成

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问