Qt中判断sqlite数据库表是否含有某列
在网上查到在sqlite数据库中,判断某列在表中是否存在的语句,如下.如果该列存在,则返回1;否则返回空.select 1 from PRAGMA_TABLE_INFO('table_name') WHERE name='column_name'这个在sqlite中直接运行是可以的,但在qt中运行就会报如下的错误:near \"(\": syntax error Unable to execute
·
在网上查到在sqlite数据库中,判断某列在表中是否存在的语句,如下.如果该列存在,则返回1;否则返回空.
select 1 from PRAGMA_TABLE_INFO('table_name') WHERE name='column_name'
这个在sqlite中直接运行是可以的,但在qt中运行就会报如下的错误:
near \"(\": syntax error Unable to execute statement
一开始以为是括号的问题,后来意识到是qt中不能够识别"PRAGMA_TABLE_INFO"关键字,也是醉了.后来采用别的方法去解决这个问题.
c++ - Qt/SQL - Get column type and name from table without record - Stack Overflow
QSqlDatabase db = QSqlDatabase::addDatabase("QSLITE", "demo_conn"); //create a db connection
QString strDBPath = "db_path";
db.setDatabaseName(strDBPath); //set the db file
QSqlRecord record = db.record("table_name"); //get the record of the certain table
int n = record.count();
bool bHasField = false;
for(int i = 0; i < n; i++)
{
QString strField = record.fieldName(i);
if(strField.compare("Field1", Qt::CaseInsensitive) == 0)
{
bHasField = true;
break;
}
}
QSqlDatabase::removeDatabase("demo_conn"); //remove the db connection

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)