Likes Likes:  0
Resultaten 1 tot 3 van de 3
Geen
  1. #1
    robert
    Re: [perl] hoe directe uitvoer i.p.v. tijdelijke bestand?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: [perl] hoe directe uitvoer i.p.v. tijdelijke bestand?

    Richard van den Berg <richhanz@gmail.com>:
    > Onderstaand stukje perl script doet z'n werk naar behoren, alleen zint
    > het me niet dat er een tijdelijk bestand nodig is. Dit is echter de
    > enige manier waarop ik het werkende heb gekregen, lo_export wil naar een
    > bestand schrijven, uit DBD::Pg(3pm): "Exports a large object into a Unix
    > file."


    Dat is de r*k met de large object interface van PostgreSQL, die werkt nou
    eenmaal zo. Als het database-schema niet vastligt zou ik je aanraden om de
    LO interface te dumpen, plaatjes (daar gaat het hier toch om?) kan je met
    moderne PostgreSQL-versies direct in de database opslaan.

    De enige andere oplossing die ik kan bedenken is als je een eigen extensie
    schrijft (in C zal dat dan worden), dan kan je de lo_read() functie in de
    PostgreSQL API waarschijnlijk gebruiken.

    --
    robert

  2. #2
    Richard van den Berg
    Re: [perl] hoe directe uitvoer i.p.v. tijdelijke bestand?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: [perl] hoe directe uitvoer i.p.v. tijdelijke bestand?

    On 07 Jun 2005 17:59:16 GMT robert
    ({n.i.w.s}@allyourbass.org.invalid) wrote:
    > Richard van den Berg <richhanz@gmail.com>:
    > > Onderstaand stukje perl script doet z'n werk naar behoren, alleen zint
    > > het me niet dat er een tijdelijk bestand nodig is. Dit is echter de
    > > enige manier waarop ik het werkende heb gekregen, lo_export wil naar een
    > > bestand schrijven, uit DBD::Pg(3pm): "Exports a large object into a Unix
    > > file."


    > Dat is de r*k met de large object interface van PostgreSQL, die werkt nou
    > eenmaal zo. Als het database-schema niet vastligt zou ik je aanraden om de
    > LO interface te dumpen, plaatjes (daar gaat het hier toch om?) kan je met
    > moderne PostgreSQL-versies direct in de database opslaan.


    Mmm, iets om rekening mee te houden bij een upgrade die steeds meer
    begint te dringen. Tot die tijd is php met pg_loreadall dus de snelste
    oplossing, die er blijkbaar speciaal voor gemaakt is.

    > De enige andere oplossing die ik kan bedenken is als je een eigen extensie
    > schrijft (in C zal dat dan worden), dan kan je de lo_read() functie in de
    > PostgreSQL API waarschijnlijk gebruiken.


    Of php nadoen:
    while ((nbytes = lo_read((PGconn *)pgsql->conn, pgsql->lofd, buf,
    PGSQL_LO_READ_BUF_SIZE))>0) { php_body_write(buf, nbytes TSRMLS_CC);
    tbytes += nbytes;}
    die 8 kb blokken blijft lezen tot het einde.

    Thanks!

    --
    Richard

  3. #3
    Richard van den Berg
    Re: [perl] hoe directe uitvoer i.p.v. tijdelijke bestand?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: [perl] hoe directe uitvoer i.p.v. tijdelijke bestand?

    On Tue, 7 Jun 2005 21:03:37 GMT Richard van den Berg
    (richhanz@gmail.com) wrote:
    > On 07 Jun 2005 17:59:16 GMT robert
    > ({n.i.w.s}@allyourbass.org.invalid) wrote:


    > > De enige andere oplossing die ik kan bedenken is als je een eigen extensie
    > > schrijft (in C zal dat dan worden), dan kan je de lo_read() functie in de
    > > PostgreSQL API waarschijnlijk gebruiken.


    > Of php nadoen:
    > while ((nbytes = lo_read((PGconn *)pgsql->conn, pgsql->lofd, buf,
    > PGSQL_LO_READ_BUF_SIZE))>0) { php_body_write(buf, nbytes TSRMLS_CC);
    > tbytes += nbytes;}
    > die 8 kb blokken blijft lezen tot het einde.


    In perl wil dat niet werken, blob_read wel, alleen: Supported by this
    driver as proposed by DBI. Implemented by DBI but not documented, so
    this method might change. Uitkijken bij een upgrade...

    Afijn, moraal van het verhaal is dat apache de vertragende factor is,
    perl (met speedy) en php zijn ongeveer net zo snel. Foto's uit de
    database naar een bestand schrijven gaat 4 x zo snel rechtstreeks met
    perl als de combinatie wget - apache - php.

    --
    Richard

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics