On 26 September 2012 17:42, Howard Butler <[email protected]> wrote:
>
> I am wondering if the following scenario is possible.
>
> std::string query("INSERT INTO MYTABLE (ID, JUNK) VALUES (DEFAULT, :sometext) 
> RETURNING ID")
> std::string sometext("some text");
> int id(0);
>
> statement st = sql.prepare << query, use(sometext, "sometext"), into(id);

Howard,

I see no reason why it wouldn't be possible.
I have just committed basic test case for the RETURNING clause to the
PostgreSQL tests:

void test12()
{
    {
        session sql(backEnd, connectString);

        table_creator_for_test12 tableCreator(sql);

        std::vector<long> ids(10);
        for (int i = 0; i != ids.size(); i++)
        {
            long sid(0);
            std::string txt("abc");
            sql << "insert into soci_test(txt) values(:txt) returning
sid", use(txt, "txt"), into(sid);
            ids[i] = sid;
        }

        std::vector<long> ids2(ids.size());
        sql << "select sid from soci_test order by sid", into(ids2);

        assert(std::equal(ids.begin(), ids.end(), ids2.begin()));
    }

    std::cout << "test 12 passed" << std::endl;
}

Works for me on Linux with PostgreSQL 9.2.

Best regards,
-- 
Mateusz Loskot, http://mateusz.loskot.net

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://ad.doubleclick.net/clk;258768047;13503038;j?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
Soci-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/soci-users

Reply via email to