获取数据库表中所有的字段-Qt

本文介绍了在Qt中如何获取sqlite和mysql数据库的表字段信息。对于sqlite,使用PRAGMA table_info('tablename')命令;而对于mysql,通过查询information_schema.COLUMNS表来获取,特别是当需要精确到特定数据库时,可以通过TABLE_SCHEMA字段指定。
摘要由CSDN通过智能技术生成

1.sqllite数据库

获取sqlite数据库的数据表字段的关键是 PRAGMA table_info('tablename')

bool getTableHeader(QSqlQuery &query, QString tableName, QString &header)
{
    header.clear();
    QString str = QString("PRAGMA table_info('%1')").arg(tableName);
    query.prepare(str);
    if (query.exec())
    {
        while (query.next())
        {
            header += query.value(1).toString();
            header += ",";
        }
        header += "\n";
        return true;
    }else{
        qDebug() << query.lastError();
        return false;
    }
}

bool outPutTableInfo(QString tabNmae){    
    QSqlQuery query; 
    QString strTableNmae = tabNmae;  
    QString str = "PRAGMA table_info(" + strTableNmae + ")";       
    query.prepare(str);   
    if (query.exec())   
    {        
        while (query.next())     
        {           
            qDebug() << QString(QString::fromLocal8Bit("字段数:%1     字段名:%2     字段类型:%3")).arg(query.value(0).toString()).arg(query.value(1).toString()).arg(query.value(2).toString());        
        }  
        return true;
    }else{        
        qDebug() << query.lastError();        
        return false; 
    }
}

例子:将db文件转换为CSV文件

void updateTableToCSV()
{
    QSqlQuery query(db);
    QString header;
    QStringList tableList;
    tableList <&l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值