qt 数据库表不存在则创建

方法一:获取此表的数量,如果数量不为0则存在

QSqlQuery *m_pQuery = new QSqlQuery(m_msgdb);
if( m_pQuery->exec(QString("select count(*) from sqlite_master where type='table' and name='WarnMsg'")))  //关键的判断
{
m_pQuery->next();
int x = m_pQuery->value(0).toInt();
if( x == 0 )
{
QString strSql  = QString::fromLocal8Bit("create table WarnMsg( 内容 varchar);");
if(!m_pQuery->exec( strSql ) )
{
QSqlError str = m_pQuery->lastError();
QMessageBox::information( NULL, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("警报信息数据库表创建失败!"));

}
}
}

方法二:直接用SQL语句

QSqlQuery *m_pdQuery = new QSqlQuery(m_datadb);
QString strsql = QString::fromLocal8Bit("create table if not exists dataInfo( 设备名称 varchar, 设备ID varchar, 时间 varchar, 类型 varchar, 测量值 varchar);");
if(!m_pdQuery->exec( strsql ) )
{
QSqlError str = m_pdQuery->lastError();
QString strerror = str.text();
QMessageBox::information( NULL, QString::fromLocal8Bit("提示"),strerror);

}

你可能感兴趣的:(qt 数据库表不存在则创建)