若该文为原创文章,未经允许不得转载
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/79566999
各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)
Qt开发专栏:实用技巧(点击传送门)
需求
指定使用sql server数据库,qt连接sql server进行查询操作。
原理
qt使用odbc驱动连接sql server数据库。
配置ODBC以及测试数据源
第一步:控制面板搜索ODBC数据源
第二步:添加odbc,已有则不添加,点击配置
第三部:配置ODBC向导
第四步:获取服务器名称
第五步:使用配置的sa帐号登录
第六步:配置ODBC服务器的数据库
第七步:配置完成
第八步:配置成功
第九步:点击“测试数据源“,测试成功表示数据库连接没有问题
关键代码
启动时连接数据库
void MainWindow::init() { _sqlServer.setDataBasetName("localhost", "dictionary", "sa", "123456"); if(!_sqlServer.connectToSqlServer()) { QMessageBox::warning(this, QString::fromLocal8Bit("错误"), QString::fromLocal8Bit("数据库连接错误,词典将无法正常使用!!!")); } }
设置数据库模块信息
void SqlServer::setDataBasetName(QString server, QString database, QString uid, QString pwd) { _server = server; _database = database; _uid = uid; _pwd = pwd; }
连接数据库的模块代码
bool SqlServer::connectToSqlServer() { #if 0 // 方法一:尝试成功 _db = QSqlDatabase::addDatabase("QODBC"); _db.setHostName(_server); _db.setDatabaseName(_database); _db.setUserName(_uid); _db.setPassword(_pwd); #else // 方法二:尝试成功:注意对于express版本的数据库,SERVER字段后面一定要加\\sqlexpress,否则连接不上 _db = QSqlDatabase::addDatabase("QODBC"); QString strConnect = QString("Driver={SQL Server};" "SERVER=%1\\sqlexpress;" "DATABASE=%2;" "UID=%3;" "PWD=%4;") .arg(_server) .arg(_database) .arg(_uid) .arg(_pwd); _db.setDatabaseName(strConnect); #endif if(!_db.open()) { emit error(_db.lastError().databaseText()); return false; }else{ emit connctedToSqlServer(); return true; } }
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/79566999