您的位置:首页 > 编程语言 > Qt开发

QT 连接数据库的详细步骤

2012-11-17 14:41 393 查看
QT 连接数据库步骤是本文要介绍的内容,不多说先来看内容。连接数据库需要的头文件:

1. #include <QSqlDatabase>

2. #include <QSqlQuery>

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. }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: