|
From: stephan b. <st...@s1...> - 2004-12-19 15:51:01
|
This does this trick, in fetch():
default:
{
if(field_val)
{
std::string buff( field_val, field_val +
field->length );
val = new SQLString(buff.c_str());
}
else
{
val = new SQLString();
}
}
(also #include <string>)
IMO this is suitable for time fields, as well, because they're all just
strings in the end.
Now s11n has a psql-powered db layer. In theory it'll support any
compatible db layer, configurable via command-line args to s11nconvert.
Convert file to db:
stephan@owl:~/cvs/s11n.net/ps11n/src> s11nconvert -f in.s11n -s psql -o
one --psql-verbose
PSqlSerializer.cpp:42 : psql-verbose mode is on.
PSqlSerializer.cpp:52 : Proxy Serializer = [compact].
PSqlSerializer.cpp:65 : Connecting to database [localhost]...
PSqlSerializer.hpp:133 : serialize(node,[one])...
PSqlSerializer.hpp:144 : driver=mysql, @0x8070be0
Pull object from db:
stephan@owl:~/cvs/s11n.net/ps11n/src> s11nconvert -S psql -f one -s
expat --psql-verbose
PSqlSerializer.cpp:42 : psql-verbose mode is on.
PSqlSerializer.cpp:52 : Proxy Serializer = [compact].
PSqlSerializer.cpp:65 : Connecting to database [localhost]...
PSqlSerializer.hpp:82 : deserialize(one) from
mysql://stephan:xxxx@localhost/ps11n
PSqlSerializer.hpp:88 : driver=mysql, @0x8070c10
PSqlSerializer.hpp:110 : Buffered 191 bytes.
PSqlSerializer.hpp:72 : Deser from stream...
<!DOCTYPE s11n::io::expat_serializer>
<data_node class="list">
<data_node class="lex_t">
<v>42</v>
</data_node>
<data_node class="lex_t">
<v>-42.420000</v>
</data_node>
<data_node class="lex_t">
<v>fourty two</v>
</data_node>
<data_node class="lex_t">
<v>x</v>
</data_node>
</data_node>
--
----- st...@s1... http://s11n.net
"...pleasure is a grace and is not obedient to the commands
of the will." -- Alan W. Watts
|