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

query->isActive()也为false,这就说明问题出在createDB上,也就是说这个QString应该是不符合要求才出错的。后来逐个测试,最后发现是
check varchar(100)的原因,经查看check是数据库关键字。

 //创建数据库文件路径
testResultPath = APPDIR + "/TestReport/";
QDir my_dir(testResultPath);
if (!my_dir.exists())
my_dir.mkpath(testResultPath);
testResultPath += "testResult.db"; //创建数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
//db.setHostName("easybook-3313b0"); //可以省略
db.setDatabaseName(testResultPath);
//db.setUserName("CETG54th"); //设置数据库用户名,可以省略
//db.setPassword("123456"); //设置数据库密码,可以省略
db.open();
if (!db.isOpen())
{
qDebug() << "db is not open";
return;
} //创建数据库表
QSqlQuery *query = new QSqlQuery("", db);
//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 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 if (query->exec(createDB))
qDebug() << "Create testResult Successful";
else
qDebug() << "Create testResult Fail"; 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 数据库创建表失败原因之数据库关键字的更多相关文章

  1. 使用PowerDesigner创建表并导入到数据库

    使用PowerDesigner创建表并导入到数据库 刚刚学习使用PowerDesigner进行数据库的创建,下面我就分享一下如何创建表并导入到数据库. 1.首先到网上下载一下PowerDesigner ...

  2. Oracle数据库创建表是有两个约束带有默认索引

    Oracle数据库创建表是有两个约束带有默认索引.1.主键primary Key:唯一索引.非空2.唯一Unique:唯一索引,可以是空值如果没有设定主键和唯一约束,表中不会有默认索引的. 建立主键/ ...

  3. Oracle 删除用户和表空间////Oracle创建删除用户、角色、表空间、导入导出、...命令总结/////Oracle数据库创建表空间及为用户指定表空间

    Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下 对于单个user和tablespace 来说, 可以使用如下命令来完成. 步骤一:  删除user drop ...

  4. MySql数据库创建表

    3.3.MySql数据库创建表 创建5个表: UserInfo用户基础表 Role 角色表 MenuInfo 菜单即控制表 Relation_Role_Menu 角色对应菜单关系表 RelaTion_ ...

  5. T-SQL - query01_创建数据库|创建表|添加数据|简单查询

    时间:2017-09-29  整理:byzqy 本篇以"梁山好汉花名册"为例,记录MS SQLServer T-SQL语句的使用,包含命令: 创建数据库 | 删除数据库 创建表 | ...

  6. hive中创建表失败

    使用create table命令创建表失败,如下错误信息: hive> create table test(id int,name string,age int,sex string); FAI ...

  7. mysql 在创建表或者插入时遇到关键字报错

    mysql 在创建表或者插入时遇到关键字:比如name,status等.都不报错 解决方法:在字段上加上` 上面这个符号是键盘ecs下面那个符号

  8. 创建human用户登录数据库创建表

    根据人力资源管理系统中表的设计,创建human用户登录数据库创建 准备阶段 把运行脚本复制到D:\app\Administrator\product\11.2.0\dbhome_1\demo\sche ...

  9. Oracle SQLserver数据库创建表ID字段的自动递增_序列

    Oracle 将表t_uaer的字段ID设置为自增:(用序列sequence的方法来实现) ----创建表 Create table t_user( Id ),userid ),loginpasswo ...

随机推荐

  1. jQuery plugin

    SidebarJS http://makotot.github.io/sidebar/

  2. Spring Boot集成Jasypt安全框架

    Jasypt安全框架提供了Spring的集成,主要是实现 PlaceholderConfigurerSupport类或者其子类. 在Sring 3.1之后,则推荐使用PropertySourcesPl ...

  3. SDUT2484 算术表达式的转换(表达式树)

    题目链接. 分析: 转换成表达式树,然后先序.中序.后序遍历. AC代码如下: #include <stdio.h> #include <string.h> #define m ...

  4. (转载)PHP array_merge() 函数

    (转载)http://www.w3school.com.cn/php/func_array_merge.asp PHP Array 函数 定义和用法 array_merge() 函数把两个或多个数组合 ...

  5. app开发历程————服务器端生成JSON格式数据,采用Unicode编码,隐藏中文

    今天,问以前的同事,他们写接口按什么编码,怎么看到有\u的一些看不懂的内容,一问,原来是信息隐藏,防止信息泄漏. 然后在网上查了Java如何把中文转换成unicode编码,转自:http://blog ...

  6. Java学习日记-2 零零碎碎

    一.使用Scanner类进行控制台的输入 文档中Scanner类的定义为A simple text scanner which can parse primitive types and string ...

  7. NSOutputStream\NSInputStream

    NSOutputStream-保存网络资源到本地 _filePath = [[NetworkManager sharedInstance] pathForTemporaryFileWithPrefix ...

  8. java操作xml方式比较与详解(DOM、SAX、JDOM、DOM4J)

    java中四种操作(DOM.SAX.JDOM.DOM4J)xml方式的比较与详解     1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准. ...

  9. Android Monkey具体解释

    Monkey是一个执行在Android设备或者虚拟机上的程序,它能随机模拟一系列用户的操作.点击,滑动,能够用它来做压力測试. 在Monkey执行的过程中,它会产生并发送一系列的事件给系统,而且监听系 ...

  10. Java 编程的动态性, 第4部分: 用 Javassist 进行类转换--转载

    讲过了 Java 类格式和利用反射进行的运行时访问后,本系列到了进入更高级主题的时候了.本月我将开始本系列的第二部分,在这里 Java 类信息只不过是由应用程序操纵的另一种形式的数据结构而已.我将这个 ...