Hi.


This isn’t really a PostgreSQL question but I’ve gotten no response to the 
following

issue posted on the SOCI-users list.  I’m posting here in the hope that someone 
has

experience building SOCI for PostgreSQL with Boost type support on Windows.



Configuration:

Using SOCI 3.2.3, Boost 1.59.0, PostgreSQL 9.4 (same with 9.5b2),

and Microsoft Visual Studio 2010 on Win 7 Pro 64-bit (everything but OS is 
32-bit).



Target is 32-bit SOCI DLL with PostgreSQL support and Boost integration (at 
least tuple).



Ran 'soci_postgresql_test.exe' and all tests under 'SOCI PostgreSQL Tests' 
passed except:

                test 6 skipped (dynamic backend)

                NOTICE:  table "soci_test" does not exist, skipping

                NOTICE:  table "soci_json_test" does not exist, skipping

                NOTICE:  table "soci_test" does not exist, skipping



I can build an application that doesn't use boost::tuple without error.

However, if I do use boost∷tuple, I get:

  c:\develop\soci-3.2.3\core\exchange-traits.h(40): error C2065: 'x_type' : 
undeclared identifier





// ----example-----------------------------------------------------

#include "stdafx.h"

/* stdafx.h includes:

#define _ITERATOR_DEBUG_LEVEL 0

#include "targetver.h"

#include <stdio.h>

#include <tchar.h>

*/



#include <string>

#include <iostream>

#include <boost/tuple/tuple.hpp>



#include <boost-tuple.h>

#include <soci.h>

#include <soci-postgresql.h>

#pragma comment(lib, "libsoci_core_3_2.lib")

#pragma comment(lib, "libsoci_postgresql_3_2.lib")

#pragma comment(lib, "libpq.lib")



int _tmain(int argc, _TCHAR* argv[])

{

                soci::session sql(soci::postgresql, "host=localhost 
user=postgres password=XXXXX dbname=postgres port=5432");



                sql << "CREATE TABLE IF NOT EXISTS t (i INTEGER, s TEXT)";

                sql << "TRUNCATE TABLE t";

                sql << "INSERT INTO t (i, s) VALUES (0, 'frist')";



                int i;

                std::string s;

                sql << "SELECT i, s FROM t WHERE i = 0", soci::into(i), 
soci::into(s);

                std::cout << i << "\t" << s << std::endl;



                boost::tuple<int, std::string> r;

// following line causes error C2065: 'x_type' : undeclared identifier in 
core\exchange-traits.h

                sql << "SELECT i, s FROM t WHERE i = 0", soci::into(r);

                std::cout << r.get<0>() << "\t" << r.get<1>() << std::endl;



                return(0);

}

//---------------------------------------------------------------------



Thanks.


[cid:image003.jpg@01D13328.75B4D9F0]Brian Lawry
Manufacturing Software Engineer-Supply Chain
Compressor Controls Corporation
4725 121st Street, Des Moines, Iowa 50323, U.S.A.
bla...@cccglobal.com<mailto:bla...@cccglobal.com> / 
www.cccglobal.com<http://www.cccglobal.com> / 
LinkedIn<http://www.linkedin.com/company/compressor-controls-corporation>


Reply via email to