I'm not yet experienced with the library. However, some tests from
test050.cxx to test065.cxx (provided with the sources) contain code samples
handling large objects.
Good luck ;)
On 9/5/07, Shannon Allen <[EMAIL PROTECTED]> wrote:
>
> Can you tell what I am missing? s.tellg() returns a size of 0. I know
> there is a largeobject there with that id, because I can do this right
> before the below code and it works perfecltly:
> pqxx::largeobjectaccess loGet(w,137396206,PGSTD::ios::in);
> loGet.to_file("test.seqb");
>
>
> ...
> pqxx::work w(*atr->getConn(),me);
> pqxx::ilostream s(w, 137396206);
>
> ofstream file("test.seqb", ios::out|ios::binary|ios::trunc);
> pqxx::ilostream::pos_type size;
> char * memblock(0);
>
> cout << "Streaming blob into a file " << endl;
> if(s.good())
> {
> size = s.tellg();
> cout << "SIZE OF LOSTREAM " << size << endl; ==> prints out 0
> memblock = new char [size];
> s.seekg (0, ios::beg);
> s.read (memblock, size);
> file.write(memblock,size);
> delete[] memblock;
> file.close();
> }
>
>
> Thanks.
>
> Hilton Perantunes wrote:
> > Try a look on this:
> > http://www.cplusplus.com/doc/tutorial/files.html
> >
> >
> >
> > On 9/4/07, *Shannon Allen * <[EMAIL PROTECTED]
> > <mailto:[EMAIL PROTECTED]>> wrote:
> >
> > I am trying to get comfortable using the lostream class for large
> > objects. I have a large binary file that I am storing in a BLOB
> > that I
> > can get back out using largeobjectaccess and then use the
> > to_file(file)
> > method to write it back out and that works fine. However, I want to
> > give users streaming functionality, but I need to know how to do it
> > first :-) .
> >
> > What I would like to do first is stream this back out to a file,
> > similar
> > to what I've already done with largeobjectaccess::to_file(file), but
> > instead I want to use lostream.
> >
> > Given this code, what do I need to do next?
> >
> > ...
> > pqxx::work w(*atr->getConn(),me);
> > pqxx::ilostream s(w, id5);
> >
> > ofstream file("test.seqb", ios::out | ios::binary | ios::trunc);
> > cout << "Streaming blob into a file " << endl;
> >
> > //This isn't right
> > if(s.good())
> > {
> > file << s;
> > }
> > cout << "Done Streaming blob into a file " << endl;
> > file.close();
> > ...
> > _______________________________________________
> > Libpqxx-general mailing list
> > [email protected]
> > <mailto:[email protected]>
> > http://gborg.postgresql.org/mailman/listinfo/libpqxx-general
> >
> >
> >
> >
> > --
> > Hilton William Ganzo Perantunes
> > Sistemas de Informação - Universidade Federal de Santa Catarina
> > --
> > Dinheiro não traz felicidade, mas dá uma sensação tão parecida... -_-
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Libpqxx-general mailing list
> > [email protected]
> > http://gborg.postgresql.org/mailman/listinfo/libpqxx-general
> >
>
> _______________________________________________
> Libpqxx-general mailing list
> [email protected]
> http://gborg.postgresql.org/mailman/listinfo/libpqxx-general
>
--
Hilton William Ganzo Perantunes
Sistemas de Informação - Universidade Federal de Santa Catarina
--
Dinheiro não traz felicidade, mas dá uma sensação tão parecida... -_-
_______________________________________________
Libpqxx-general mailing list
[email protected]
http://gborg.postgresql.org/mailman/listinfo/libpqxx-general