【Qt链接Access】Qt5.8.0链接Access数据库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoxiao133/article/details/85076599

Qt链接Access数据库
参考链接:
1、https://blog.csdn.net/qq_37275429/article/details/79049448
2、https://blog.csdn.net/cibiren2011/article/details/52792476

bool QtForAccess::connectAccess(QString accdb_name)
{
    m_db_name = accdb_name;
    m_sqlDatabase = QSqlDatabase::addDatabase("QODBC", accdb_name);//Setting up database driver must use QSqlDatabase::addDatabase("QODBC") then m_sqlDatabase.addDatabase("QODBC")
    QString connect_str = QStringLiteral("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; FIL={MS Access};DBQ=%1;").arg(accdb_name);//连接字符串
    // Setting Connection Information
    m_sqlDatabase.setDatabaseName (connect_str);//Set connection string
    m_sqlDatabase.setUserName("");//Set the username of the login database
    m_sqlDatabase.setPassword("");//Set password
    //Open the database
    m_isopenbase = m_sqlDatabase.open();
    if(!m_isopenbase) {
        QMessageBox::critical(0, QObject::tr("Database Error"),m_sqlDatabase.lastError().text());
        return false;
    }
    else
    {
//        QMessageBox::information(0,"hello world","Open Database success!",QMessageBox::Ok);
    }
    return m_isopenbase;
}

bool QtForAccess::getAccessData()
{
    QString sheet1_name = "tb_GPS原始数据", sheet2_name = "tb_BD原始数据";
    if(!m_isopenbase) return false;

    // select all tabel names
    QStringList table_names = m_sqlDatabase.tables();

    // select all data
    QSqlQuery query(m_sqlDatabase);
    QString select_sql = "";
    // read GPS data
    select_sql = QString("select * from %1").arg(sheet1_name);
    query.prepare(select_sql);
    if(!query.exec()) return false;
    while (query.next())//Data traversing queries
    {
        QVector < QString > temp_line_data;
        for(int i = 0; i < gps_attribute_num;i++)
        {
            temp_line_data.append(query.value(i).toString());
        }
        m_Access_GPS.append(temp_line_data);
        temp_line_data.clear();
    }
    // read BDS data
    select_sql = QString("select * from %1").arg(sheet2_name);
    query.prepare(select_sql);
    if(!query.exec()) return false;
    while (query.next())//Data traversing queries
    {
        QVector < QString > temp_line_data;
        for(int i = 0; i < bds_attribute_num;i++)
        {
            temp_line_data.append(query.value(i).toString());
        }
        m_Access_BDS.append(temp_line_data);
        temp_line_data.clear();
    }
    query.clear();
    m_isgetaccessdata = true;
    return m_isgetaccessdata;
}

猜你喜欢

转载自blog.csdn.net/xiaoxiao133/article/details/85076599
今日推荐