Hi,

hopefully I've not overlooked another thread which covers this issue.

The problem is that I want to use std::size_t through soci::row. This
is not possible because it's base_type is long long which expands to
_int64 on MSVC. row::operator>> now calls row::get which in turn tries
a dynamic_cast of holder<int> to holder<_int64> which is not possible.
This leads to a bad_cast.

Is there any way to fix this? At the moment I select into an int and
convert it afterwards. But this is really ugly :) I've attached a
simple example using SQLite3 which only supports int as datatype.

This applies to all UDT which use soci::values as base_type e.g. the
adaption of fusion::vector.

Best Regards
Henning

Attachment: main.cpp
Description: Binary data

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Soci-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/soci-users

Reply via email to