Conexão com o Banco de Dados e Operações com SQLite

Conexão com o Banco de Dados

A conexão com o banco de dados é feita utilizando QSqlDatabase. A classe Conexao gerencia a abertura e fechamento da conexão com o banco de dados SQLite.

Exemplo:

conexao.cpp
bool Conexao::abrir() 
{
    if (!bancoDeDados.open()) {
        qDebug() << "Erro ao abrir o banco de dados:" << bancoDeDados.lastError().text();
        return false;
    }
    return true;
}

Execução de Consultas SQL

As consultas SQL são executadas usando QSqlQuery. A classe QSqlQuery permite preparar e executar consultas SQL, além de manipular os resultados.

Exemplo:

QSqlQuery query;
query.prepare("SELECT * FROM tb_pacientes");
if (query.exec()) {
    while (query.next()) {
    // Manipulação dos dados
    }
} else {
    qDebug() << "Erro ao executar a query:" << query.lastError().text();
}

Exibição de Dados na Interface

Para exibir dados na interface, o projeto utiliza QTableWidget para tabelas personalizadas. Os dados são carregados diretamente nas tabelas a partir dos resultados das consultas SQL.

Exemplo:

mainwindow.cpp
void MainWindow::setTabelaPacientes(QSqlQuery &query) 
{
    int tb_linha = 0;
    ui->tw_pacientes->clearContents();
    ui->tw_pacientes->setRowCount(0);
    ui->tw_pacientes->setColumnCount(9);
    while (query.next()) {
        ui->tw_pacientes->insertRow(tb_linha);
        for (int i = 0; i <= 8; i++) {
            ui->tw_pacientes->setItem(tb_linha, i, new QTableWidgetItem(query.value(i).toString()));
        }
        tb_linha++;
    }
}

Segurança e Integridade dos Dados

A segurança e integridade dos dados são garantidas através de:

  • Prepared Statements: Uso de query.prepare para evitar injeção de SQL.

  • Validação de Dados: Validação dos dados antes de inseri-los no banco.

Atualizado