Mysql
 sql >> Database >  >> RDS >> Mysql

Quale funzione di esecuzione dovrei usare in MySQL Connector/c++?

Ognuna delle tre funzioni ha un uso specifico, che può essere intuito dal tipo di ritorno.

esegui

Questa funzione è la più generica. Restituisce un valore booleano, il cui valore è true se la query restituisce più risultati o false se la query non restituisce nulla o un conteggio degli aggiornamenti.

Questa è la funzione che vorrai utilizzare se vuoi usarne solo una per essere il più generica possibile.

Se restituisce true, ti consigliamo di utilizzare ResultSet * getResultSet() per ottenere i risultati.
Se restituisce false, ti consigliamo di utilizzare uint64_t getUpdateCount() per ottenere il numero di righe aggiornate.

eseguiQuery

Questa funzione restituisce direttamente un ResultSet che è utile per SELECT e presuppone che ci sia effettivamente un set di risultati da restituire.

Equivale a chiamare execute() seguito da getResultSet() .

Ti consigliamo di utilizzare questa funzione quando sai che stai utilizzando codice SQL che restituisce risultati come righe.

esegui Aggiornamento

Questa funzione restituisce un valore intero utile per UPDATE istruzioni e presuppone che vi sia un conteggio degli aggiornamenti da restituire.

Equivale a chiamare execute() seguito da getUpdateCount() , anche se, per qualche motivo, i tipi restituiti sono diversi (int vs uint64_t).

Questa è la funzione da utilizzare durante l'esecuzione di istruzioni SQL che modificano i dati ed è necessario sapere se alcuni dati sono stati modificati.

Allora,

quello unificato è infatti execute , che può essere utilizzato per eseguire SQL arbitrario e gestire il risultato in modo appropriato, mentre gli altri due sono comodi wrapper quando sai che tipo di query esegui.

Nel tuo caso, dal momento che stai scrivendo un wrapper attorno al linguaggio SQL, ciascuna delle tue funzioni sa che tipo di istruzione eseguirà, quindi l'uso delle funzioni di convenienza ti consentirà di scrivere codice più breve.

Ad esempio:

insert(), update(), delete() ---> executeUpdate()
select()                     ---> executeQuery()