本人数据库新手,在创建表时出现问题,最后经查证,找出问题所在。下面的程序是部分节选,在创建数据库表的时候,起先使用的L24的CreateDB,经测试,一直输出 Create testResult Fail,

query->isActive()也为false,这就说明问题出在createDB上,也就是说这个QString应该是不符合要求才出错的。后来逐个测试,最后发现是

check varchar(100)的原因,经查看check是数据库关键字。

1 //创建数据库文件路径

2 testResultPath = APPDIR + "/TestReport/";3 QDir my_dir(testResultPath);4 if (!my_dir.exists())5 my_dir.mkpath(testResultPath);6 testResultPath += "testResult.db";7

8 //创建数据库

9 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");10 //db.setHostName("easybook-3313b0");//可以省略

11 db.setDatabaseName(testResultPath);12 //db.setUserName("CETG54th");//设置数据库用户名,可以省略13 //db.setPassword("123456");//设置数据库密码,可以省略

14 db.open();15 if (!db.isOpen())16 {17 qDebug() << "db is not open";18 return;19 }20

21

22 //创建数据库表

23 QSqlQuery *query = new QSqlQuery("", db);24 //const QString createDB = "create table testResult(id int primary key,testDevice varchar(100),project varchar(100),exc varchar(100),display varchar(100),result varchar(100),time varchar(100),check varchar(100))";//fail

25

26 const QString createDB = "create table testResult(id int primary key,testDevice varchar(100),project varchar(100),exc varchar(100),display varchar(100),result varchar(100),time varchar(100),viewInfo varchar(100))"; //success

27

28 if (query->exec(createDB))29 qDebug() << "Create testResult Successful";30 else

31 qDebug() << "Create testResult Fail";32

33 qDebug() << query->isActive();

下面罗列了数据库关键字

A

ABSOLUTE ACTION ADD ADMINDB

ALL ALLOCATE ALPHANUMERIC ALTER

AND ANY ARE AS

ASC ASSERTION AT AUTHORIZATION

AUTOINCREMENT AVG

B

BAND BEGIN BETWEEN BINARY

BIT BIT_LENGTH BNOT BOR

BOTH BXOR BY BYTE

C

CASCADE CASCADED CASE CAST

CATALOG CHAR CHARACTER CHAR_LENGTH

CHARACTER_LENGTH CHECK CLOSE COALESCE

COLLATE COLLATION COLUMN COMMIT

COMP COMPRESSION CONNECT CONNECTION

CONSTRAINT CONSTRAINTS CONTAINER CONTINUE

CONVERT CORRESPONDING COUNT COUNTER

CREATE CREATEDB CROSS CURRENCY

CURRENT CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP

CURRENT_USER CURSOR

D

DATABASE DATE DATETIME DAY

DEALLOCATE DEC DECIMAL DECLARE

DEFAULT DEFERRABLE DEFERRED DELETE

DESC DESCRIBE DESCRIPTOR DIAGNOSTICS

DISALLOW DISCONNECT DISTINCT DOMAIN

DOUBLE DROP

E

ELSE END END-EXEC ESCAPE

EXCEPT EXCEPTION EXCLUSIVECONNECT EXEC

EXECUTE EXISTS EXTERNAL EXTRACT

F

FALSE FETCH FIRST FLOAT

FLOAT4 FLOAT8 FOR FOREIGN

FOUND FROM FULL

G

GENERAL GET GLOBAL GO

GOTO GRANT GROUP GUID

H

HAVING HOUR

I

IDENTITY IEEEDOUBLE IEEESINGLE IGNORE

IMAGE IMMEDIATE IN INDEX

INDICATOR INHERITABLE INITIALLY INNER

INPUT INSENSITIVE INSERT INT

INTEGER INTEGER1 INTEGER2 INTEGER4

INTERSECT INTERVAL INTO IS

ISOLATION

J

JOIN

K

KEY

L

LANGUAGE LAST LEADING LEFT

LEVEL LIKE LOCAL LOGICAL

LOGICAL1 LONG LONGBINARY LONGCHAR

LONGTEXT LOWER

M

MATCH MAX MEMO MIN

MINUTE MODULE MONEY MONTH

N

NAMES NATIONAL NATURAL NCHAR

NEXT NO NOT NOTE

NULL NULLIF NUMBER NUMERIC

O

OBJECT OCTET_LENGTH OF OLEOBJECT

ON ONLY OPEN OPTION

OR ORDER OUTER OUTPUT

OVERLAPS OWNERACCESS

P

PAD PARAMETERS PARTIAL PASSWORD

PERCENT PIVOT POSITION PRECISION

PREPARE PRESERVE PRIMARY PRIOR

PRIVILEGES PROC PROCEDURE PUBLIC

Q

R

READ REAL REFERENCES RELATIVE

RESTRICT REVOKE RIGHT ROLLBACK

ROWS

S

SCHEMA SCROLL SECOND SECTION

SELECT SELECTSCHEMA SELECTSECURITY SESSION

SESSION_USER SET SHORT SINGLE

SIZE SMALLINT SOME SPACE

SQL SQLCODE SQLERROR SQLSTATE

STRING SUBSTRING SUM SYSTEM_USER

T

TABLE TABLEID TEMPORARY TEXT

THEN TIME TIMESTAMP TIMEZONE_HOUR

TIMEZONE_MINUTE TO TOP TRAILING

TRANSACTION TRANSFORM TRANSLATE TRANSLATION

TRIM TRUE

U

UNION UNIQUE UNIQUEIDENTIFIER UNKNOWN

UPDATE UPDATEIDENTITY UPDATEOWNER UPDATESECURITY

UPPER USAGE USER USING

V

VALUE VALUES VARBINARY VARCHAR

VARYING VIEW

W

WHEN WHENEVER WHERE WITH

WORK WRITE

X

Y

YEAR YESNO

Z

ZONE

上面的关键字主要转自http://zhidao.baidu.com/link?url=RmJBWdmrnxciebfhmXsiJF3bZzgb1Yw0ywkhugHxcyBLKMixClmJl8pulL-m7sasPaAoUgzPqYFlGyPH5gQ36TJOsn7j_iGHDLAbXbfQrJe

另外如果使用数据库出现的问题非上述问题,则推荐博客http://www.cnblogs.com/findumars/p/4207133.html,希望有帮助。

qt mysql 不能创建表_Qt 数据库创建表失败原因之数据库关键字相关推荐

  1. python 利用正则表达式删除在将一个数据库的表复制到另一个数据库出现insert失败删除原数据库数据

    问题描述 博主在做课设的时候需要将一个数据库的表转移到另一个远程数据库中,但是由于两个数据库的mysql版本不同,出现了Incorrect string value: '\xF0\x9F\xA7\xA ...

  2. qt mysql分页控件_Qt分页布局与切分窗口的实现

    一.如何实现分页展示? QStackedLayout类可对窗口实现分页展示,每次只显示一个布局,将其他页的布局隐藏.为方便,Qt提供一个内置QStackedLayout的便利类:QStackedWid ...

  3. qt向服务器传输文字_Qt 模拟 HTTP 表单提交文字或文件到服务器

    传统通过 HTTP 表单的方式来上传文件在 Web 中实现是非常简单的,一个表单中加几个域填写上对应的内容提交就可以了,但如果通过 Qt 来实现就相对麻烦一点,不过我都总结好了代码,直接使用就可以了. ...

  4. mysql数据库文件损坏的原因_MySQL数据库文件损坏如何解决

    以下的文章主要是介绍MySQL数据库文件在坏掉的情况下通过二进值日志对其进行恢复的实际操作方案,本文主要是从造成MySQL数据库文件在坏掉的原理讲起的,以下就是文章的主要内容描述. 一.场景 1.你使 ...

  5. QT操作XML文件打开了doc.setContent(file)失败原因

    1.首先要知道XML文件格式,必须要有一个根节点,如果没有访问会出错 2.相对路径.绝对路径.资源路径都行,如果你路径不对,你Qfile是读取不了文件的,到不了doc.setContent(& ...

  6. qt连接mysql创建表_Qt编译mysql以及创建表后进行导入操作

    鉴于很多同学对Qt编译myql总是不能成功.出现各种问题,今天特此写出本教程,希望可以帮到须要的同学. 首先,须要明确编译的目的和原理. 目的:Qt 5.2版本号曾经都是不带mysql驱动的.所以须要 ...

  7. linux数据库创建score表,MySQL数据库学习笔记

    MySQL数据库学习笔记phpma (实验环境:Redhat9.0,MySQL3.23.54) 纲要: 一,连接MySQL phpma 二,MySQL管理与授权 三,数据库简单操作 四, 数据库备份 ...

  8. R操作MySQL数据库创建表、删除表、增删改查(CRUD)

    R操作MySQL数据库创建表.删除表.增删改查(CRUD) 关系数据中的数据是按照一定范式去存储的.当我们需要非常高级和复杂的Sql查询就可以使用关系数据库的数据资产.不光java和python可以容 ...

  9. Mysql 查看、创建、更改 数据库和表

    一.一探究竟 我想看看有多少个数据库,有多少个表,以及表里有啥东西.那么你可以这样: 图形界面: 命令: 查看多少个数据库:注意 后面带s #查看 SHOW DATABASES; #查看表 USE b ...

最新文章

  1. SAP MM 初阶之供应商寄售采购模式下ERS功能的测试
  2. 图解二叉树的先中后序遍历
  3. Vue creatElement
  4. postman请求soap 请求_postman中请求如何传递对象到spring controller?
  5. 6、WHERE:条件查询数据
  6. Python的enumerater
  7. 按不同vlan下发dhcp_电脑网络:交换机VLAN基础知识及基本划分方法,揭开VLAN的面纱...
  8. tornado 模板
  9. android 串口调试adb,Android系统 debug 技巧(最全最强adb 串口调试命令)
  10. Hack.Chat 在浏览器里快速建立简单、随用即丢线上聊天室,无须下载安装软体
  11. 刚刚开通blog写下几段文字,以表意义
  12. 分享19个高质量架构视频!吃透它,妥妥让你进大厂!
  13. postman循环操作及响应判断-支持文本多变量输入
  14. 【Longest Palindromic Substring】cpp
  15. 百度地图根据经纬度计算距离php,百度地图两者经纬度距离计算
  16. java 生成随机数 (Random函数)
  17. 苹果又开了一个“坏头”
  18. 【书评】多姿态诗意生活--读《十四堂人生创意课》有感
  19. 鹿先森博客原先森博客(sey.ink)
  20. lzx: ssh: connect to host lzx port 22: Connection timed out-------hadoop

热门文章

  1. 关于SAP:建表时如果有QUAN、CURR类型的字段不能激活的问题
  2. 「产品中心」AMC系列三相多功能表
  3. 用gnuplot画三维彩色点+标签
  4. cmd中如何退回到上一级文件夹目录
  5. PHP 使用 PhpSpreadsheet 操作 excel 表格
  6. linux和win玩复古游戏,在Linux上玩复古游戏的5种最佳方式 | MOS86
  7. 【AI】基于产生式规则的动物识别系统
  8. Google Earth Engine 学习7---ASTER GED 地表发射率数据下载
  9. eloqua邮件服务器,ORACLE ELOQUA 营销企业云服务.PDF
  10. cesium加载山东天地图