详解QT 连接数据库步骤
创始人
2024-08-02 13:41:04
0

QT 连接数据库步骤是本文要介绍的内容,不多说先来看内容。连接数据库需要的头文件:

  1. #include  
  2. #include  

1、连接微软的Access

  1. QSqlDatabase ldb = QSqlDatabase::addDatabase("QODBC");  
  2. ldb.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=system.mdb;UID=;PWD=xiaozhuset");  
  3. bool ok = ldb.open();  
  4. //新定义一个查询集合,并指定 链接关键字。 如果有多个连接,可以随意指定一个你需要的。  
  5. QSqlQuery mquery=QSqlQuery::QSqlQuery(ldb);          
  6. if(ok)  
  7. {  
  8. bool isok=mquery.exec("select * from sql_set;");  
  9. if (!isok)  
  10. {  
  11. ldb.close();  
  12. return -1;  
  13. }         
  14. //这个是必须的,因为查处的结果集当前位置不在第一条记录上。  
  15. mquery.next();  
  16. QString sHostName=mquery.value(1).toString();  
  17. QString sDatabaseName=mquery.value(2).toString();  
  18. QString sUserName=mquery.value(3).toString();  
  19. QString sPassword=mquery.value(4).toString();  
  20.  
  21. //清除结果集  
  22. mquery.clear();  
  23. // 如果该连接不再使用,就可以关闭。  
  24. ldb.close();  
  25. //这里是将从数据库读出的数据写到一个list控件里  
  26. ui.list_out->insertItem(ui.list_out->count(),sHostName);  
  27. ui.list_out->insertItem(ui.list_out->count(),sDatabaseName);      
  28. }  
  29. else  
  30. {   
  31. // 打开本地数据库失败,  
  32. QMessageBox::critical(0, QObject::tr("读取Access数据库错误!"),db.lastError().text());  
  33. return -1;  
  34. }     

2、连接mssql2000 数据库

  1. QString strDatabaseName = QString("DRIVER={SQL Server};Server=(%1);Database=%2").arg("local").arg(sDatabaseName);      
  2.  
  3. db=QSqlDatabase::addDatabase("QODBC","db"); // 使用odbc数据库驱动   
  4. db.setHostName(sHostName);  
  5. db.setPort(1433);  
  6. db.setDatabaseName(strDatabaseName); // 我们之前建立的数据库连接关键字  
  7. db.setUserName(sUserName);   
  8. db.setPassword(sPassword);   
  9. bool ok = db.open(); //尝试连接数据库  
  10. if(ok)  
  11. {   
  12. menuset_set->dbdb=db;  
  13. // 这里用sa已经成功连上数据库              
  14. return 0;  
  15. }  
  16. else  
  17. {   
  18. // 打开数据库失败,  
  19. QMessageBox::critical(0, QObject::tr("数据库连接错误!"),db.lastError().text());  
  20. return -2;  
  21. }          
  22. mssql2000数据库连接的使用和Access连接使用方法一样。  
  23. QSqlQuery mquery=QSqlQuery::QSqlQuery(db);          
  24. bool ok1=mquery.exec("select * from CarteMenu;");  
  25. if (ok1==false)return -1;  
  26. QString menu_mkey=mquery.value(13).toString();  
  27. QString strmenu_lang=mquery.value(3).toString();  
  28. //清除结果集  
  29. mquery.clear(); 

3、连接mysql 数据库

  1. QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); // 使用mysql数据库驱动   
  2. db.setHostName("localhost");  
  3. db.setDatabaseName("exampledb"); // 数据库名称  
  4. db.setUserName("sa"); // 用户名  
  5. db.setPassword("1"); // 密码  
  6. bool ok = db.open(); // 尝试连接数据库  
  7. if(ok)  
  8. {   
  9. QSqlQuery myquery;   
  10. if(myquery.exec("select * from employeedb"))  
  11. {   
  12. int num = 0;   
  13. if(db.driver()->hasFeature(QSqlDriver::QuerySize))  
  14. {  
  15. num = myquery.size(); // 如果支持结果影响的行数,那么直接记录下来  
  16. }  
  17. else  
  18. {  
  19. myquery.last(); //否则定位到结果最后  
  20. num = myquery.at() + 1;  
  21. }  
  22. //这里添加数据库的查询结果处理操作  
  23. }   
  24. else // 如果查询失败  
  25. {   
  26. QSqlError error = myquery.lastError();  
  27. }  
  28. }  
  29. else // 打开数据库失败  
  30. {  
  31. }  

小结:关于详解QT 连接数据库步骤的内容介绍完了,想要深入了解数据库的话,请参考编辑推荐,最后希望本篇文章对你有所帮助!

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
P2P的自白|我不生产内容,我... 现在一提起P2P,人们就会联想到正在被有关部门“围剿”的互联网理财服务。×租宝事件使得劳...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...