qt工程配置

Qt5中使用sql相关功能,需要在工程文件导入sql模块:

QT       += sql

头文件引入SQL模块类定义

#include <QSqlQuery>
#include <QSqlDatabase>
#include <QSqlError>

创建数据库

qDebug()<<QSqlDatabase::drivers();
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("testDB.db");
db.setUserName("root");
db.setPassword("123456"); 

上述第一行代码查看支持的数据库类型如下:

("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")

后面几行表示创建一个名为testDB.db的SQLITE数据库,如果这个数据库不存在,则创建;数据库存在,后续的数据库操作在已有的数据库上进行。并设置数据库用户名为“root”,密码“123456”。

创建表

  • 新表的名字,在关键字CREATE TABLE之后给出;
  • 新表中,列的名字和定义用逗号隔开。

下面代码用来实现创建名为Customers的表。

bool isOk = db.open();if(!isOk){qDebug()<<"error info :"<<db.lastError();}else{QSqlQuery query;QString creatTableStr = "CREATE TABLE Customers \(                                       \cust_id      char(10)  NOT NULL ,     \cust_name    char(50)  NOT NULL ,     \cust_address char(50)  NULL ,         \cust_city    char(50)  NULL ,         \cust_state   char(5)   NULL ,         \cust_zip     char(10)  NULL ,         \cust_country char(50)  NULL ,         \cust_contact char(50)  NULL ,         \cust_email   char(255) NULL           \);";query.prepare(creatTableStr);if(!query.exec()){qDebug()<<"query error :"<<query.lastError();}else{qDebug()<<"creat table success!";}}db.close();

操作数据库之前,先要打开数据库,打开成功后才能执行相关数据库操作,完成后,最好关闭数据库。

操作数据库需要用到QSqlQuery类,操作前必须定义一个对象。对数据库的操作,都是通过执行SQLite的语句完成的。

创建表格语句:CREATE TABLE <table_name> (f1 type1, f2 type2,…);

从上述代码可以看到,表明Customers紧跟在关键字CREATE TABLE之后。表的定义在圆括号之中,各列之间用逗号分隔,总共有9列。每个表列有NULL和NOT NULL两种模式。允许NULL值的列允许插入时不给出该列的值,反之,NOT NULL列必须有值。注意不要把NULL值和空字符串相混淆,空字符串是一个有效的值。

最后,用DB Browser for SQLite工具打开创建的testDB.db数据库,数据库表的结构如下图:

Qt SQL 学习笔记二:qt建立数据库,创建和操纵表相关推荐

  1. PL/SQL学习笔记(二)

    定义并使用变量 PL/SQL有四种类型:标量类型,复合类型,引用类型(reference),LOB(Large Obejct)类型 一.标量类型 最常用的就是标量类型,是指只能存放单个数值的变量,包括 ...

  2. [Spring Data MongoDB]学习笔记--建立数据库的连接

    1. 有了上一篇的Mongo后,连接数据库我们还需要更多的信息,比如数据库名字,用户名和密码等. 我们可以继续来配置MongoDbFactory的实例. public interface MongoD ...

  3. My SQL 学习笔记二

    本文主要记录这两天遇到的问题: 1.sql脚本文件存在自己的目录下,例如在F盘,通过命令:mysql> source F:/filename.sql 会弹出Failed  to open fil ...

  4. SQL学习笔记之二:QUOTENAME函数

    SQL学习笔记之二:QUOTENAME函数 --SQL学习笔记二 --函数QUOTENAME --功能:返回带有分隔符的Unicode 字符串,分隔符的加入可使输入的字符串成为有效的Microsoft ...

  5. 学习笔记之Qt从入门到精通(三)

    整理日期: 2010年4月9日 本文是学习笔记之Qt从入门到精通(二)的接续 Part 3: 进阶学习 Qt4 学习笔记 Qt 可以运行在不同的平台,像是Unix/X11.Windows.Mac OS ...

  6. QT+opencv学习笔记(5)——霍夫直线检测、圆检测及椭圆检测

    开发环境为:win10+QT5.8+opencv3.2 Hough变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛.最基本的Hough变换是从黑白图像中检测直线,还可以经过改进检测圆.椭 ...

  7. 【QT 5 学习笔记-学习绘图相关+画线图形等+绘图事件+基础学习(1)】

    [QT 5 学习笔记-学习绘图相关+画线图形等+绘图事件+基础学习(1)] 1.说明 2.实验环境 3.参照学习链接 4.自己的学习与理解 5.学习与实践代码. (1)建立基础工程. (2)加入绘图事 ...

  8. Qt学习笔记,Qt国际化

    Qt学习笔记,Qt国际化 Qt国际化步骤: 第一步:设置.pro文件,加入TRANSLATIONS为国际化做准备 TRANSLATIONS = language/language_en.ts\     ...

  9. Qt学习笔记,Qt程序架构设计要旨

    Qt学习笔记,Qt程序架构设计要旨 时间过得很快,转眼学习Qt已经有一个多月了,对Qt的学习也在不断的深入中.自己手下的code也很多了,不过不得不说,还有很多的部分没有接触过,比如网络编程,2D,3 ...

  10. tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数

    tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报  分类: tensorflow(4)  目录(?)[+] 本笔记目的 ...

最新文章

  1. Docker 学习笔记之二
  2. vba 当前文件名_值得收藏的VBA编程常用代码3640
  3. Office365----Project Online SKUs Change
  4. jmeter验证WEB页面的href链接请求
  5. Servlet笔记之(三)
  6. 53 岁张亚勤官宣:正式加入清华!
  7. 查看linux的机器内存大小,linux 查看机器内存方法 (free命令)
  8. 最新仿7881游戏装备网虚拟物品交易源码+修复版
  9. STM32标准库(固件库)分析
  10. 药店app的布局html,APP首页常用排版
  11. oracle共有同义词,Oracle同义词概念
  12. 【有利可图网】PS教程:给人物制作一种碎片打散效果
  13. linux连接蓝牙没声音,Linux Ubuntu18.04蓝牙没声音 org.bluez.Error.Failed, name org.PulseAudio1 already taken...
  14. C. Petya and Inequiations
  15. SQL将Json字符串转为表格
  16. 【制作ppt的软件】Focusky教程 | 视频全屏播放
  17. 阿里云导出负载均衡SLB实例数据
  18. 09-word不显示段落标记(去掉回车符号)取消拼写错误
  19. 抖音企业号seo排名优化账号矩阵系统
  20. 《网络渗透检测第一章 信息收集》

热门文章

  1. PADS2007常用快捷键
  2. 数理逻辑习题集(6)
  3. gateway权限统一认证
  4. ntsd.exe 附使用教程
  5. 关于EditPlus3 取消备份后再重新打开 备份设置还原到默认状态的问题
  6. 最佳的75个安全工具工具
  7. centos7:安装配置 virtualbox 增强功能 VBoxGuestAdditions,并实现物理机脚本控制虚拟机
  8. Python 每日一题(计算数值和)
  9. 「创作之秋」| 参赛成员- 获奖名单(参与奖)
  10. 【C++游戏引擎Easy2D】基于基础类型学习使用核心Game+Window+Input详解