1 votes

Mises à jour par lots de MySQL en C

L'API C de MySQL prend-elle en charge les mises à jour par lots ? J'écris une application dans laquelle certaines transactions sont traitées par lots importants. Il serait très inefficace d'effectuer un appel unique à la base de données pour chaque insertion dans le processus de journalisation.

Le langage C a-t-il quelque chose de similaire aux API de Java pour les mises à jour SQL par lots ?

Merci,

N.

-1voto

Emil H Points 24062

Oui, c'est le cas, même s'il n'existe pas de fonction distincte pour cela. Jetez un coup d'oeil :
http://dev.mysql.com/doc/refman/5.0/en/c-api-multiple-queries.html

Vous devez spécifier que mysql_real_query() doit analyser à l'avance les déclarations multiples séparées par des ;, en activant un drapeau soit lors de la connexion, soit en utilisant la fonction mysql_set_server_option() .

mysql_set_server_option(&mysql, MYSQL_OPTION_MULTI_STATEMENTS_ON);

C'est ainsi que php implémente mysqli_multi_query() :

PHP_FUNCTION(mysqli_multi_query)
{
    // ...
    MYSQLI_ENABLE_MQ;
    if (mysql_real_query(mysql->mysql, query, query_len)) {
        // ...
        MYSQLI_DISABLE_MQ;
        // ...

        RETURN_FALSE;
    }
    RETURN_TRUE;
}

La macro MYSQLI_ENABLE_MQ est évaluée par le code que j'ai fourni ci-dessus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X