2 votes

Les bibliothèques Poco c++ supportent-elles les transactions du serveur sql ?

J'utilise les bibliothèques poco c++ version 1.4.6p1 et je l'utilise pour faire quelques transactions dans sql server 2012 mais les transactions ne fonctionnent pas, mais cela fonctionne pour mysql. Y a-t-il des améliorations supplémentaires à faire pour supporter les transactions ?

2voto

Charzhard Points 713

J'ai débogué la bibliothèque poco, dans la classe poco->ODBC->SessionImpl la fonction begin qui marque le début d'une transaction n'a pas d'implémentation, alors que dans la classe poco->MySQL->SessionImpl la fonction begin a une implémentation, c'est pourquoi la transaction fonctionne pour MySQL mais pas pour SQL Server.

1voto

Stefano Mtangoo Points 1004

Depuis Poco 1.7.x (la dernière version au moment de la rédaction), les transactions sont prises en charge. Seulement vous devez l'activer explicitement. Voici un exemple :

//setup your session skipped
session.setFeature("autoCommit", false);
Poco::Data::Transaction transaction(session);
std::vector<std::string> sqlList;
sqlList.push_back("DELETE FROM Table WHERE cond1='condition1'");
sqlList.push_back("DELETE FROM Table WHERE cond2='condition2'");
sqlList.push_back("DELETE FROM Table WHERE cond3='condition3'");

transaction.execute(sqlList);
transaction.commit();

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