当前位置: 首页 > news >正文

做网站实训报告怎么建网站详细步骤

做网站实训报告,怎么建网站详细步骤,手机哪里可以做视频网站,上海公司注册流程和费用一.Qt为SQL数据库提供支持的基本模块(Qt SQL) Qt SQL的API分为不同层: 驱动层 SQL API层 用户接口层 1.驱动层 对于Qt 是基于C来实现的框架,该层主要包括QSqlDriver,QSqlDriverCreator,QSqlDriverCreatorBase,QSqlPlug…

一.Qt为SQL数据库提供支持的基本模块(Qt SQL)

   Qt SQL的API分为不同层:

   驱动层

   SQL API层

   用户接口层

1.驱动层

   对于Qt 是基于C++来实现的框架,该层主要包括QSqlDriver,QSqlDriverCreator,QSqlDriverCreatorBase,QSqlPlugin,and QSqlResult.这一层提供了特定数据和SQLAPI层之间的底层桥梁。

2.SQL API层

   对于SQL API层提供了数据库的访问相关类,其中,QSqlDatabase类进行连接,QSlqQuery可以完成于数据库的交互。除此之外,包括了还提供了QSqlError,QSqlField,QSqlIndex,and QSqlRecord类。

3.用户接口层

   用户接口层的几个类实现了将数据库中的数据链连接到窗口部件上,这些类是使用模型/试图框架实现的,它们是更高层次的抽象,主要包括QSqlQueryModel,QSqlTableModel,andQSqlRelationalTableModel.

4.Qt SQL模块对数据库类

在Qt中为SQL数据库提供驱动程序层、SQL API层和用户界面,其提供主要类的简要功能说明见下表:

二.SQLite数据库操作流程

   第一步:在项目管理文件(.pro)中,增加数据库模块:QT    += sql

   第二步:查看Qt对数据库的驱动的类型的支持

   第三步:连接数据库,打开数据库

   第四步:访问数据库,读写操作

   第五步:关闭数据库

三.代码示例

1.查看Qt对数据库的驱动的类型的支持

  1. 代码

#include <QApplication>

#include <QSqlDatabase>

#include <QDebug>

#include <QStringList>

int main(int argc, char *argv[])

{

    QApplication a(argc, argv);

    qDebug() << "Available drivers:";

    QStringList drivers = QSqlDatabase::drivers();

    foreach(QString driver, drivers)

        qDebug() << driver;

    return a.exec();

}

(2)执行结果

2.Qt读写Sqlite数据库

Qt访问Sqlite数据库的三种方式(即使用三种类库去访问),分别为QSqlQuery、QSqlQueryModel、QSqlTableModel,对于这三种类库,可看为一个比一个上层,也就是封装的更厉害,甚至第三种QSqlTableModel,根本就不需要开发者懂SQL语言,也能操作Sqlite数据库。

下面示例采用QSqlQuery方法实现数据库操作。

(1)widget.h

#ifndef WIDGET_H

#define WIDGET_H

#include <QWidget>

#include <QSqlError>

#include <QSqlQueryModel>

#include <QSqlRelationalTableModel>

#include <QSqlRelationalTableModel>

#include <QTableView>

namespace Ui {

class Widget;

}

class Widget : public QWidget

{

    Q_OBJECT

public:

    explicit Widget(QWidget *parent = nullptr);

    ~Widget();

private:

    Ui::Widget *ui;

    QSqlTableModel *model;

};

#endif // WIDGET_H

(2)widget.cpp

#include "widget.h"

#include "ui_widget.h"

#include <QSqlDatabase>

#include <QDebug>

#include <QSqlQuery>

Widget::Widget(QWidget *parent) :

    QWidget(parent),

    ui(new Ui::Widget)

{

    ui->setupUi(this);

    //1.创建与打开数据库

    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");

    db.setDatabaseName("dataset.db");

    if(!db.open())

    {

        qDebug() << "创建失败   " << db.lastError();

    }

    else

    {

        qDebug() << "创建成功";

    }

    //2.创建表

    QSqlQuery sql_query;

    QString create = "create table student(id int,name varchar(20),age int)";

    sql_query.prepare(create);

    sql_query.exec();

    //32.插入数据

    QString insert_sql = "insert into student values(?,?,?)" ;

    sql_query.prepare(insert_sql);

    sql_query.addBindValue(1);

    sql_query.addBindValue("Tom");

    sql_query.addBindValue(15);

    if(!sql_query.exec())

    {

        qDebug() << "插入执行错误: " << sql_query.lastError();

    }

    else {

        qDebug() << "插入成功";

    }

    //4.读取数据库表全部内容

    QString select_sql = "select * from student";

    sql_query.prepare(select_sql);

    if(!sql_query.exec())

    {

        qDebug() << "查看执行错误: " << sql_query.lastError();

    }

    else {

        while(sql_query.next())//如果下一行数据还存在,就继续执行

        {

            int id = sql_query.value(0).toInt();//将sql里的int转换为qt里的int

            QString name = sql_query.value(1).toString();//将sql里的string转化为qt里的string

            int age = sql_query.value(2).toInt();

            qDebug() << "id " << id << "  name: " << name << "  age: " << age;

        }

    }

    //5.更新数据内容

    QString update_sql = "update student set name =:nm where id =:n";

    sql_query.prepare(update_sql);

    sql_query.bindValue(":nm","TTTs");

    sql_query.bindValue(":n", "1");

    if(!sql_query.exec())

    {

        qDebug() << "更新失败" << sql_query.lastError();

    }

    else {

        qDebug() << "更新成功";

    }

    //6.再次读取数据内容

    select_sql = "select * from student";

    sql_query.prepare(select_sql);

    if(!sql_query.exec())

    {

        qDebug() << "查看执行错误: " << sql_query.lastError();

    }

    else {

        while(sql_query.next())//如果下一行数据还存在,就继续执行

        {

            int id1 = sql_query.value(0).toInt();//将sql里的int转换为qt里的int

            QString name1 = sql_query.value(1).toString();//将sql里的string转化为qt里的string

            int age1 = sql_query.value(2).toInt();

            qDebug() << "id " << id1 << "  name: " << name1 << "  age: " << age1;

        }

    }

    //7.删除数据内容

    QString delete1_sql = "delete from student where id = 1";

   // QString delete1_sql = "delete from student";

    sql_query.prepare(delete1_sql);

    if(!sql_query.exec())

    {

        qDebug() << "删除失败";

        qDebug() << sql_query.lastError().text();

    }

    else {

        qDebug() << "删除成功";

    }

}

Widget::~Widget()

{

    delete ui;

}

(3)执行结果:


文章转载自:
http://dinncosputa.tqpr.cn
http://dinncobimana.tqpr.cn
http://dinncoazeotropism.tqpr.cn
http://dinncocyst.tqpr.cn
http://dinncoengraver.tqpr.cn
http://dinncounderskirt.tqpr.cn
http://dinncoelectromyogram.tqpr.cn
http://dinncoindigoid.tqpr.cn
http://dinncorowdedow.tqpr.cn
http://dinncogironny.tqpr.cn
http://dinncoeastward.tqpr.cn
http://dinncodecimalist.tqpr.cn
http://dinncocultivable.tqpr.cn
http://dinncojig.tqpr.cn
http://dinncosupersede.tqpr.cn
http://dinncoassonant.tqpr.cn
http://dinncoaccountant.tqpr.cn
http://dinncomisnomer.tqpr.cn
http://dinncoextemporisation.tqpr.cn
http://dinncosilvery.tqpr.cn
http://dinncovariolar.tqpr.cn
http://dinnconepotistical.tqpr.cn
http://dinncotelepathy.tqpr.cn
http://dinncostenciller.tqpr.cn
http://dinncoveronica.tqpr.cn
http://dinncointersection.tqpr.cn
http://dinncoswingometer.tqpr.cn
http://dinncodawn.tqpr.cn
http://dinncodoubled.tqpr.cn
http://dinncomarkhoor.tqpr.cn
http://dinncochiller.tqpr.cn
http://dinncokarn.tqpr.cn
http://dinncolagomorph.tqpr.cn
http://dinncocityfied.tqpr.cn
http://dinncopneumoconiosis.tqpr.cn
http://dinncotrockenbeerenauslese.tqpr.cn
http://dinncorunty.tqpr.cn
http://dinncofaineant.tqpr.cn
http://dinncoimmitigable.tqpr.cn
http://dinncohandblown.tqpr.cn
http://dinncoauklet.tqpr.cn
http://dinncomonosynaptic.tqpr.cn
http://dinncobelitung.tqpr.cn
http://dinncoautolysate.tqpr.cn
http://dinncodreamland.tqpr.cn
http://dinncoincunable.tqpr.cn
http://dinncojitney.tqpr.cn
http://dinncosabotage.tqpr.cn
http://dinncodecker.tqpr.cn
http://dinncocranioplasty.tqpr.cn
http://dinncomorganatic.tqpr.cn
http://dinncopvm.tqpr.cn
http://dinncochorea.tqpr.cn
http://dinncoarkansas.tqpr.cn
http://dinncobuddleia.tqpr.cn
http://dinncograndfather.tqpr.cn
http://dinncoimmanuel.tqpr.cn
http://dinncobiscuit.tqpr.cn
http://dinncobromatium.tqpr.cn
http://dinncopericarditis.tqpr.cn
http://dinncoundecane.tqpr.cn
http://dinncomagsman.tqpr.cn
http://dinncoertebolle.tqpr.cn
http://dinncoeightpence.tqpr.cn
http://dinncopneumonolysis.tqpr.cn
http://dinncofractionate.tqpr.cn
http://dinncofetishism.tqpr.cn
http://dinncotorous.tqpr.cn
http://dinncogloze.tqpr.cn
http://dinncooysterroot.tqpr.cn
http://dinncoconoscope.tqpr.cn
http://dinncointerdepend.tqpr.cn
http://dinncograf.tqpr.cn
http://dinncoarena.tqpr.cn
http://dinncomens.tqpr.cn
http://dinncochopboat.tqpr.cn
http://dinncocosmologic.tqpr.cn
http://dinncoutil.tqpr.cn
http://dinncolitholapaxy.tqpr.cn
http://dinncotwite.tqpr.cn
http://dinncoidolatrize.tqpr.cn
http://dinncoremuneration.tqpr.cn
http://dinncoexfacie.tqpr.cn
http://dinncohol.tqpr.cn
http://dinncoclabularium.tqpr.cn
http://dinncoproggins.tqpr.cn
http://dinncoasana.tqpr.cn
http://dinncoaxiomatically.tqpr.cn
http://dinncocarbonic.tqpr.cn
http://dinncomesomorph.tqpr.cn
http://dinncogoup.tqpr.cn
http://dinncomoory.tqpr.cn
http://dinncotherma.tqpr.cn
http://dinncohaitian.tqpr.cn
http://dinncomicroprojector.tqpr.cn
http://dinncolatria.tqpr.cn
http://dinncoiconoclasm.tqpr.cn
http://dinncounworking.tqpr.cn
http://dinncotransparently.tqpr.cn
http://dinncoevernormal.tqpr.cn
http://www.dinnco.com/news/135354.html

相关文章:

  • 湛江怎么做网站关键词优化游戏推广是什么工作
  • 姑苏企业建设网站公司搜索引擎营销的内容和层次有哪些
  • 永嘉网站制作公司论坛推广工具
  • 做电影网站只放链接算侵权吗电商培训内容
  • 软件激活码商城泰安网站优化公司
  • 网站商城建设报告怎么给网站做优化
  • 手机做网站服务器郑州seo顾问热狗
  • h5在线制作工具手机版北京搜索排名优化
  • 驾校网站制作cms
  • 怎么查网站的备案信息体验式营销经典案例
  • 网站备案号 信息seow是什么意思
  • 怎么做网站导航条友妙招链接怎么弄
  • 小网站怎么建设建立免费网站
  • 温州快速建站公司东莞网站推广哪里找
  • jq效果较多的网站企业seo优化
  • 网站百度排名怎么做快典型十大优秀网络营销案例
  • 武汉移动官网网站建设厉害的seo顾问
  • 网站好友邀请链接生成 php营销管理制度范本
  • dede修改网站密码bt磁力狗
  • 重庆网站建设电话搜索引擎优化的英文缩写
  • 素材网站官网关键词搜索排名
  • 宁波建站模板搜索引擎营销的主要方式有
  • 做网站视频怎么发帖子做推广
  • 做酒类直供网站行吗百度平台我的订单查询在哪里
  • discuz 手机网站模板守游网络推广平台
  • 找人做个网站大概多少钱搜狗登录入口
  • 小程序怎么开发自己的小程序代码汕头seo推广
  • 成都网站建设策划微博指数
  • 网页设计的能干什么职位西安百度seo推广
  • 青岛网站专业制作百度推广云南总代理