From 4d8a043ec8be1ed46485be833155221c9ed06d7d Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Bueno Date: Thu, 8 May 2025 09:07:50 -0300 Subject: [PATCH] ajustes --- .../src/routes/bd/+page.svelte | 35 +++++++++++++++---- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/material-sistemas-distribuidos/src/routes/bd/+page.svelte b/material-sistemas-distribuidos/src/routes/bd/+page.svelte index bd82f76..a5efe60 100644 --- a/material-sistemas-distribuidos/src/routes/bd/+page.svelte +++ b/material-sistemas-distribuidos/src/routes/bd/+page.svelte @@ -12,7 +12,7 @@

@@ -527,6 +527,16 @@ app.MapGet("/livros/{id}", async (long id) => await cmd.ExecuteNonQueryAsync(); + using var cmd2 = conn.CreateCommand(); + + cmd2.CommandText = "SELECT LAST_INSERT_ID()"; + + using var reader = await cmd2.ExecuteReaderAsync(); + + await reader.ReadAsync(); + + livro.Id = reader.GetInt64(0); + return livro; }`} @@ -600,19 +610,30 @@ cmd.Parameters.AddWithValue("foto", livro.Foto); cmd.Parameters.AddWithValue("keywords", livro.Keywords); cmd.Parameters.AddWithValue("ativo", livro.Ativo); cmd.Parameters.AddWithValue("criadoem", livro.CriadoEm); -cmd.Parameters.AddWithValue("atualizadoem", livro.AtualizadoEm);`} +cmd.Parameters.AddWithValue("atualizadoem", livro.AtualizadoEm); + +await cmd.ExecuteNonQueryAsync()`}

- Assim como no método de listagem e da consulta por ISBN, montamos o SQL com um INSERT, e depois adicionamos os parâmetros do comando, com os - dados do objeto livro. + Assim como no método de listagem e da consulta por chave primária, montamos o SQL com um INSERT, adicionamos os parâmetros do comando, com os + dados do objeto livro, e depois o executamos.

-
{`await cmd.ExecuteNonQueryAsync();
+
{`using var cmd2 = conn.CreateCommand();
+
+cmd2.CommandText = "SELECT LAST_INSERT_ID()";
+
+using var reader = await cmd2.ExecuteReaderAsync();
+
+await reader.ReadAsync();
+
+livro.Id = reader.GetInt64(0);
 
 return livro;`}

- Em seguida, executamos o insert através de await cmd.ExecuteNonQueryAsync(). Como a operação é de escrita, não há resultado a ser lido. + Em seguida, executamos uma consulta para obter o id do livro recém criado, e o atribuímos à livro.Id, para + que possamos incluir este dado, a chave primária e identificador do livro criado, na resposta do endpoint.

@@ -779,7 +800,7 @@ app.MapDelete("/livros/{id}", async (long id) =>

- O código-fonte do projeto desenvolvido até agora pode ser baixado aqui. + O código-fonte do projeto desenvolvido até agora pode ser baixado aqui.

\ No newline at end of file