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 |