所有准备前面博客中已经准备就绪,这篇博客中将对如何使用Qt库访问SQL Server 2008中数据库的表数据进行讲解。

配置DSN

在操作系统中配置DSN步骤如下:
(1)
这里写图片描述
(2)
这里写图片描述
(3)
这里写图片描述
(4)
这里写图片描述
(5)
这里写图片描述
(6)
这里写图片描述
(7)
这里写图片描述
(8)
这里写图片描述
(9)
这里写图片描述

链接数据库并读取表中数据

(1)在数据库QtTestDB新建QtTestTable表,供测试使用,表中内容如下:
这里写图片描述
(2)编译如下代码,输出表中内容结果如下:

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    qDebug() << "ODBC driver?" << db.isValid();
    QString dsn = QString::fromLocal8Bit("QtDSN");
    db.setHostName("***");
    db.setDatabaseName(dsn);
    db.setUserName("sa");
    db.setPassword("***");
    if (!db.open())
        qDebug() << db.lastError().text();
        //qDebug() << "Database error" << db.lastError().text());
        return false;
        qDebug() << "database open success!";
    QSqlTableModel model;
    model.setTable("QtTestTable");
    QSqlQuery query(db);
    query.exec("select * from QtTestTable");
    while (query.next())
        qDebug()<<query.value(0).toString();
        qDebug() << query.value(1).toString();
        qDebug() << query.value(2).toString();

基于Qt链接SQL Server 并读取表中内容的相关配置到此结束,今后将会在这些基础上进行软件开发。最近较忙,博客写的仓促,不足之处请指出。

5.可以进行嵌入式开发 ① 在要对文件进行加密解密的时候,先将文件按一定的数据结构读入内存,然后进行加密或解密操作。运算数据读取自内存。 ② 在对加密或解密完成的数据进行写出的时候,都是将其直接写到指定好的文件,即直接写入磁盘。这是因为,考虑到中途可能因为意外断电等原因引起操作中断,为了保护已经花费时间运算完成的数据,将其直接写入磁盘。 ③ 在关键算法上做进一步优化,例如在寻找素数时,素数测试使用更快速的算法;还有3.3节提到的,在用私有密钥进行幂模运算时使用中国余数定理等。 ④ 对C++核心类库进行重点优化,使其运算效率尽可能提高。其中包括对各类之间的组织细节、各程序模块的具体编写等,进行全面细致的检查和修改,例如将大数据类型以对象指针传递而不拷贝,将简单的for循环展开等。 5.可以进行嵌入式开发 ① 在要对文件进行加密解密的时候,先将文件按一定的数据结构读入内存,然后进行加密或解密操作。运算数据读取自内存。 ② 在对加密或解密完成的数据进行写出的时候,都是将其直接写到指定好的文件,即直接写入磁盘。这是因为,考虑到中途可能因为意外断电等原因引起操作中断,为了保护已经花费时间运算完成的数据,将其直接写入磁盘。 ③ 在关键算法上做进一步优化,例如在寻找素数时,素数测试使用更快速的算法;还有3.3节提到的,在用私有密钥进行幂模运算时使用中国余数定理等。 ④ 对C++核心类库进行重点优化,使其运算效率尽可能提高。其中包括对各类之间的组织细节、各程序模块的具体编写等,进行全面细致的检查和修改,例如将大数据类型以对象指针传递而不拷贝,将简单的for循环展开等。
博客在这里:http://blog.csdn.net/shanchuan2012/article/details/61199441 本文将介绍如何在Qt中连SQL Server数据库,假设已经具有如下软件环境: win7 64 VS 2013 Qt 5.6.0(32 msvc) Qt add in 1.2.5 SQL Server 2008(32、64应该都可以)
5.可以进行嵌入式开发 ① 在要对文件进行加密解密的时候,先将文件按一定的数据结构读入内存,然后进行加密或解密操作。运算数据读取自内存。 ② 在对加密或解密完成的数据进行写出的时候,都是将其直接写到指定好的文件,即直接写入磁盘。这是因为,考虑到中途可能因为意外断电等原因引起操作中断,为了保护已经花费时间运算完成的数据,将其直接写入磁盘。 ③ 在关键算法上做进一步优化,例如在寻找素数时,素数测试使用更快速的算法;还有3.3节提到的,在用私有密钥进行幂模运算时使用中国余数定理等。 ④ 对C++核心类库进行重点优化,使其运算效率尽可能提高。其中包括对各类之间的组织细节、各程序模块的具体编写等,进行全面细致的检查和修改,例如将大数据类型以对象指针传递而不拷贝,将简单的for循环展开等。 创建工程成功后,先在.Pro文件中加入:QT += sql Qt 提供了多种数据的驱动,可以在帮助文档搜索sql中找到 再在main.cpp中加入一些QTSQL函数库并定义个连接函数进行连接测试。 Main.cpp的完整代码如下: #include "mainwindow.h"... QSqlDatabase_db = QSqlDatabase::addDatabase("QODBC"); _db.setHostName(); _db.setDatabaseName(); _db.setUserName(); _db.setPassword(); _db.setPort(); _db.open(); QSqlQuery query; 5.可以进行嵌入式开发 ① 在要对文件进行加密解密的时候,先将文件按一定的数据结构读入内存,然后进行加密或解密操作。运算数据读取自内存。 ② 在对加密或解密完成的数据进行写出的时候,都是将其直接写到指定好的文件,即直接写入磁盘。这是因为,考虑到中途可能因为意外断电等原因引起操作中断,为了保护已经花费时间运算完成的数据,将其直接写入磁盘。 ③ 在关键算法上做进一步优化,例如在寻找素数时,素数测试使用更快速的算法;还有3.3节提到的,在用私有密钥进行幂模运算时使用中国余数定理等。 ④ 对C++核心类库进行重点优化,使其运算效率尽可能提高。其中包括对各类之间的组织细节、各程序模块的具体编写等,进行全面细致的检查和修改,例如将大数据类型以对象指针传递而不拷贝,将简单的for循环展开等。 运行步骤: 1. 在未安装VS2008的机器上,首先要安装VS2008的运行库(vcredist_x86_vs2008sp1.exe)。 2. 建数据库的语句在“SQL Sentenses.sql”中,执行一遍即可在DBMS中建立数据库。 3. 建立相应的ODBC数据源,注意默认数据库的设置。 4. 可执行程序在OutputFiles文件夹中。运行后,ODBC设置按第3步中立设置ODBC的情况填写即可。用户登录的用户名与密码为“admin/admin”或“user/user”,前者拥有完全权限,后者只有浏览权限。 系统说明: 1. 用户信誉的计算制度为:1.0*用户租借次数-0.3*用户违规次数。 2. 会员所享受的优惠是租借价格打八折,系统会自动进行这一操作。 最后说一句,程序绝对OK的,成功不了的自己多研究一下,不要张口就骂人,谢谢:-) QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); // 数据库主机名 db.setDatabaseName("example"); // 数据库名字 db.setUserName("username"); // 用户名 db.setPassword("password"); // 密码 if (!db.open()) { qDebug() << "Failed to connect to database!"; return; 2.执行SQL语句: QSqlQuery query(db); query.prepare("INSERT INTO new_table (column_name) SELECT column_name FROM old_table"); if (query.exec()) { qDebug() << "Insert succeeded!"; } else { qDebug() << "Insert failed:" << query.lastError().text(); 以上代码是将old_table表中的column_name列的数据插入到new_table表中的column_name列。 希望能帮到您,如果还有其他问题可以继续提出。 Alex9900: 这个帖子的方法可以https://blog.csdn.net/LV_Chenglin1999/article/details/122640354?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171190107816800180616118%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=171190107816800180616118&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-122640354-null-null.142^v100^pc_search_result_base2&utm_term=matlab%E7%9A%84m_map%E5%AE%89%E8%A3%85&spm=1018.2226.3001.4187