-
Notifications
You must be signed in to change notification settings - Fork 71
Description
INSERT INTO atividades (nome, descricao)
VALUES ('Implementação de API', 'Criar endpoints REST para integração');
INSERT INTO projeto_atividade (projeto_id, atividade_id)
VALUES (1, (SELECT id FROM atividades WHERE nome = 'Implementação de API' LIMIT 1));
UPDATE projetos
SET lider_id = 5
WHERE id = 1;
SELECT p.nome AS projeto, a.nome AS atividade, a.descricao, a.data_criacao
FROM projetos p
JOIN projeto_atividade pa ON p.id = pa.projeto_id
JOIN atividades a ON pa.atividade_id = a.id
ORDER BY p.nome, a.data_criacao DESC;
#include <soci/soci.h>
#include <soci/backends/postgresql/soci-postgresql.h>
#include
void inserirAtividade(soci::session& sql) {
std::string nome = "Desenvolvimento Backend";
std::string descricao = "Criar API REST para integração";
sql << "INSERT INTO atividades (nome, descricao) VALUES (:nome, :descricao)",
soci::use(nome), soci::use(descricao);
std::cout << "Atividade inserida com sucesso!\n";
}
void atualizarLiderProjeto(soci::session& sql) {
int projetoID = 1;
int novoLiderID = 5;
sql << "UPDATE projetos SET lider_id = :lider WHERE id = :id",
soci::use(novoLiderID), soci::use(projetoID);
std::cout << "Líder do projeto atualizado!\n";
}
void listarProjetosAtividades(soci::session& sql) {
soci::rowsetsoci::row rs = sql.prepare <<
"SELECT p.nome AS projeto, a.nome AS atividade, a.descricao, a.data_criacao "
"FROM projetos p "
"JOIN projeto_atividade pa ON p.id = pa.projeto_id "
"JOIN atividades a ON pa.atividade_id = a.id "
"ORDER BY p.nome, a.data_criacao DESC";
std::cout << " Listagem de Projetos e Atividades:\n";
for (const auto& row : rs) {
std::cout << " Projeto: " << row.get<std::string>(0)
<< " | Atividade: " << row.get<std::string>(1)
<< " | Descrição: " << row.get<std::string>(2)
<< " | Criado em: " << row.get<std::string>(3) << "\n";
}
}
int main() {
try {
soci::session sql(soci::postgresql, "dbname=AtividadesBD user=admin password=senha123 host=localhost");
inserirAtividade(sql);
atualizarLiderProjeto(sql);
listarProjetosAtividades(sql);
} catch (const std::exception& e) {
std::cerr << "Erro: " << e.what() << "\n";
}
return 0;
}