drogonframework / drogon

Drogon: A C++14/17/20 based HTTP web application framework running on Linux/macOS/Unix/Windows
MIT License
11.52k stars 1.1k forks source link

Complete example of coroutine transaction #862

Closed shivshankardayal closed 2 years ago

shivshankardayal commented 3 years ago

Can you please provide a complete example a transaction for a coroutine based transaction?

an-tao commented 3 years ago
Task<> XXXCtrl::xxxMethod(
    const HttpRequestPtr req,
    std::function<void(const HttpResponsePtr &)> callback)
{
    try{
    auto dbClientPtr=drogon::app().getFastDbClient();
    auto trans=co_await dbClientPtr->newTransactionCoro();
    co_await trans->execSqlCoro(...);
    ...
    }
    catch(const std::exception &err)
    {
    ...
    }
}
shivshankardayal commented 3 years ago

It would be nice if you can copy this to documentation. Also, in orm/DbClient.h the word Transaction has typos in form of Trasaction.