Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Qual função de execução devo usar no MySQL connector/c++?


Cada uma das três funções tem um uso específico, que pode ser adivinhado pelo tipo de retorno.

executar


Esta função é a mais genérica. Ele retorna um valor booleano, cujo valor é true se a consulta retornar vários resultados, ou false se a consulta não retornar nada ou uma contagem de atualização.

Esta é a função que você desejará usar se quiser usar apenas uma para ser o mais genérica possível.

Se retornar true, você desejará usar ResultSet * getResultSet() para obter os resultados.
Se retornar falso, você desejará usar uint64_t getUpdateCount() para obter o número de linhas atualizadas.

executarConsulta


Esta função retorna diretamente um ResultSet que é útil para SELECT instruções e assume que há de fato um conjunto de resultados a ser retornado.

É equivalente a chamar execute() seguido por getResultSet() .

Você desejará usar essa função quando souber que está usando código SQL que retorna resultados como linhas.

executeUpdate


Esta função retorna um valor inteiro que é útil para UPDATE e assume que há uma contagem de atualização a ser retornada.

É equivalente a chamar execute() seguido por getUpdateCount() , embora, por algum motivo, os tipos de retorno sejam diferentes (int vs uint64_t).

Esta é a função a ser usada ao executar instruções SQL que modificam dados e você precisa saber se alguns dados foram modificados.

Então,

o unificado é de fato execute , que pode ser usado para executar SQL arbitrário e manipular o resultado adequadamente, enquanto os outros dois são wrappers convenientes quando você sabe que tipo de consulta está executando.

No seu caso, como você está escrevendo um wrapper em torno da linguagem SQL, cada uma de suas funções sabe que tipo de instrução será executada, portanto, o uso das funções de conveniência permitirá que você escreva um código mais curto.

Por exemplo:
insert(), update(), delete() ---> executeUpdate()
select()                     ---> executeQuery()