- 主题:请教一个QT sqlite创建table问题
基于已有的一个数据库文件创建一个table,失败了,
log信息:
"create table 0123456 (量程 real, 标准值 real, 显示值 real, 允许误差 real)"
QSqlError("", "不能获取行", "没有查询")
创建table的函数:
void DBInspect::add_one_table(QString tab_name, QString columns)
{
if(nullptr == m_db)
{
qDebug() <<"database is not set!";
return ;
}
QSqlQuery query(*m_db);
QString str = "create table " + tab_name + " (" + columns + ")";
//qDebug() << __FUNCTION__ << *m_db;
//qDebug() << str;
query.prepare(str);
qDebug() << str;
if (!query.exec())
{
qDebug() << query.lastError();
}
}
代码和log,自己看了没查出哪儿有问题。请各位大侠有空帮忙看一下,多谢。
再请教一下,qt中,sqlite还能有更详细的错误提示吗?
不仅仅是 QSqlError("", "不能获取行", "没有查询")
--
FROM 101.242.123.*
表名不能为数字吧。
【 在 linxy (anna) 的大作中提到: 】
: 基于已有的一个数据库文件创建一个table,失败了,
: log信息:
: "create table 0123456 (量程 real, 标准值 real, 显示值 real, 允许误差 real)"
: ...................
--
FROM 58.23.246.*
表名不符合 sql 规则。
字段名最好别用中文。而且 c++ 的中文支持没有标准化,不同的编译器有不同的处理方法。很容易出事。考虑用拼音。
【 在 linxy (anna) 的大作中提到: 】
: 基于已有的一个数据库文件创建一个table,失败了,
: log信息:
: "create table 0123456 (量程 real, 标准值 real, 显示值 real, 允许误差 real)"
: ...................
--
FROM 112.47.93.*
【 在 callmebbser 的大作中提到: 】
: 表名不能为数字吧。
:
谢谢,qt内置的sqlite对中文字符,还有一些特殊字符有限制
--
FROM 223.20.87.*
【 在 hgoldfish 的大作中提到: 】
: 表名不符合 sql 规则。
: 字段名最好别用中文。而且 c++ 的中文支持没有标准化,不同的编译器有不同的处理方法。很容易出事。考虑用拼音。
:
好的,谢谢
--
FROM 223.20.87.*