Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

API para o banco SQL Server

Olá Pessoal,

Realizei o curso com o banco SQL Server, a maior dificuldade minha foi contornar os comandos

UPDATE Atendimentos SET ? WHERE id=?

e

INSERT INTO Atendimentos SET ?

o método INSERT INTO eu consegui contornar da seguinte maneira na const sql:

            const sql = `INSERT INTO atendimentos (cliente, pet, servico, status, observacoes,dataCriacao,data) VALUES ('${cliente}','${pet}','${servico}','${status}','${obs}','${dataCriacao}','${atendimentoDatado.data}')`

Mas o UPDATE não consegui pensar uma maneira de contornar dentro da const sql. O client pode mandar alguns dados apenas e como eu teria que interpolar as variáveis dentro do da const sql?


Ou teria que primeiro fazer uma consulta no banco pegar os valores do id correspondente e no script ir testando o que o cliente mandou e fazer uns const assim:

const sql = `UPDATE Atendimentos SET cliente = ${cliente}, pet=${pet}, servico=${servico}, status=${status}, obs=${obs}, data=${data} WHERE id=${id}`

Não sei se fui tão claro na dúvida, mas basicamente não consegui replicar o método PATCH no SQL Server.

2 respostas
solução!

Boa tarde Matias, não foi fácil, mas eu consegui contornar o UPDATE, tive que montar o mysql manualmente, veja como ficou:

const chaves = Object.keys(valores)

        let sql = 'update Atendimentos set ';
        for(let i = 0; i < chaves.length; i++){
            if (i == (chaves.length - 1)) {
                if(chaves[i] == 'cliente' || chaves[i] == 'pet' || chaves[i] == 'servico' || chaves[i] == 'status' || chaves[i] == 'observacoes' || chaves[i] == 'data'){
                    sql += `${chaves[i]} = '${valores[chaves[i]]}' `
                }else{
                    sql += `${chaves[i]} = ${valores[chaves[i]]} `
                }
            }else{
                if(chaves[i] == 'cliente' || chaves[i] == 'pet' || chaves[i] == 'servico' || chaves[i] == 'status' || chaves[i] == 'observacoes' || chaves[i] == 'data'){
                    sql += `${chaves[i]} = '${valores[chaves[i]]}', `
                }else{
                    sql += `${chaves[i]} = ${valores[chaves[i]]}, `
                }
            }
        }
        sql += `where id = ${id}`;

Daí na hora de montar a query, é só fazer conexao.query(sql, ()=>{})

Talvez tivesse um jeito mais fácil, mas se tiver, eu não conheço kkkk

Obrigado @Luiz Henrique.

Também me parece que deve ter uma maneira mais fácil.