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
> >     Libpqxx-general@gborg.postgresql.org
> >     <mailto:Libpqxx-general@gborg.postgresql.org>
> >     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
> > Libpqxx-general@gborg.postgresql.org
> > http://gborg.postgresql.org/mailman/listinfo/libpqxx-general
> >
>
> _______________________________________________
> Libpqxx-general mailing list
> Libpqxx-general@gborg.postgresql.org
> 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
Libpqxx-general@gborg.postgresql.org
http://gborg.postgresql.org/mailman/listinfo/libpqxx-general

Reply via email to