Doubt - Let the user choose which line to delete

Asked

Viewed 37 times

0

I am developing a small CRUD in the C++ language, using Mysql c++ Connector 8.0.17, and I came across this question:

void Management::excluir(){
    std::cout << std::endl << " <<<<<<<<< Excluir >>>>>>>>> " << std::endl;
    sel();
    std::cout << "Quais das opções acima voce deseja excluir: (Por ID) ";
    std::cin >> opt;
    stmt->executeUpdate("DELETE FROM produto WHERE id = " opt); // Aqui é que está a dúvida.
 //Como é que eu vou deixar o usuário escolher qual valor ele quer remover, sendo que o banco de dados não reconhece a variável opt e aqui não tem a fstrings como existe no python.
        system("clear");
        main_menu();
    }

The code neither compiles from the following error:

error: expected ')' before 'opt'

An example where I used something similar was to select the database, but instead of using a variable, I used a constant and it worked:

int Management::method_login(){

std::cout << "Nome de usuário: ";
std::cin >> usuario;

std::cout << "Senha: ";
std::cin >> senha;

driver = get_driver_instance();
try{
    con = driver->connect("127.0.0.1:3306", usuario, senha);
    if(!con->isClosed()){
        std::cout << "Conexão realizada com sucesso!" << std::endl;
        con->setSchema(DATABASE);
        stmt = con->createStatement();
        stmt->execute("USE " DATABASE); // Nesta linha, DATABASE no caso é a constante.
        std::cout << "Banco de dados: << " << DATABASE << " >> selecionado com exito!" << std::endl;
        main_menu();
    }
}catch(sql::SQLException){
    std::cout << "Conexão não sucedida!" << std::endl;
    exit(1);
}

To do something similar, I would need to use a constant, but in a brief Google search I realized that constants are immutable so there’s no way I use them, like in the first snippet of code, in the context where I need the user to decide which value will be deleted.

1 answer

0

I managed to solve my problem by reading the documentation here, See the link provided by " here "because the official website is cut off much of the information.

Management Management::adicionar(){
    std::string produto;
    float preco;
    std::cout << "Digite o nome do produto: ";
    std::cin >> produto;
    std::cout << "Digite o preço do produto: ";
    std::cin >> preco;

    pstmt = con->prepareStatement("INSERT INTO produto (nome, preco) VALUES (?, ?)");
    pstmt->setString(1, produto);
    pstmt->setDouble(2, preco);
    pstmt->execute();

    delete pstmt;
    system("clear");
    return main_menu();

}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.