QT5 + SQL Server2008R2 远程连接
本文主要包括以下部分:
本文主要介绍当SQL Server和应用程序不在同一台服务器时,如何在局域网内远程连接SQL数据库。(通过公网连接数据库可以实现,但是不推荐)
1、环境准备
1.1 正常连接远程SQL Server时,请注意保证相关环境配置正常,可以参考《QT5连接SQL Server2008 本地连接》
https://blog.csdn.net/weixin_40747395/article/details/103126704
1.2 将SQL Server等软件按照上文安装到对应服务器并配置;
2、测试连接
2.1 通过cmd或者powershell测试与目标数据库IP是否正常;
2.2 开始写代码前,务必通过各类工具测试数据库连接链路是否正常。推荐使用Excel即可。
*输入数据库地址、用户名、密码;
通过下拉框,可以查看到数据库内的表,表示连接成功!
3、远程连接代码
6.1 经过测试,可通过以下方式连接远程数据库
/**连接sql server数据库
数据地址:sIp
端口号:iPort:
数据库名:sDbNm
用户名:sUserNm
密码:sPwd
数据源:dsn
*/
void MainDialog::connectSql(QString sIp, int iPort, QString sDbNm, QString sUserNm, QString sPwd)
{
db = QSqlDatabase::addDatabase("QODBC");
QString dsn = QString("Driver={sql server};SERVER=%1;PORT=%2;DATABASE=%3;UID=%4;PWD=%5;")
.arg(sIp)
.arg(iPort)
.arg(sDbNm)
.arg(sUserNm)
.arg(sPwd);
db.setDatabaseName(dsn);
bool b= db.open();
if (r)
{
qDebug() << "SQL Server Connect OK!";
}
else{
qDebug() << "SQL Server Connect Failed!";
}
至此,连接远程数据库完成。如有疑问,欢迎留言讨论。