Disculpa Alvaro, vuelvo a enviar el mensaje porque me di cuenta en la
respuesta que le di responder y te escribí a ti solo..... ahí mando el
mensaje nuevamente a la lista


Hola Alvaro y gracias por tu pronta respuesta hermano.

mira, este es mi código... a lo mejor me dices dónde está el problema....

la tabla donde quiero guardar los ficheros contiene 2 campos solamente pues
ahora estoy probando... tienen un campo fileid que es numerico y un campo
filedata que es el bytea[]

este es mi codigo

    QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
    db.setHostName("localhost");
    db.setPort(5432);
    db.setDatabaseName("bpg");
    db.setUserName("postgres");
    db.setPassword("");
    if (db.open())
    {
        QFile file("/home/freddy/Trabajo/bpg/diseno/rubro 7.xlsx");
        if (!file.open(QIODevice::ReadOnly))
        {
            qDebug("file error...");
            exit(0);
        }
        QByteArray bytesAr = file.readAll();
        std::cout << "sending query..." << std::endl;

        QSqlQuery query(db);
        query.prepare("insert into files values(:id,:data)");
        query.bindValue(":id",18);
        query.addBindValue(bytesArr);
        if (!query.exec())
        {
            qDebug(query.lastError().driverText().toLatin1());
        }
        cout << "query sent..." << endl;
        file.close();
        db.close();
    }

la salida de mi programa dice esto:

sending query...
QPSQL: Unable to create query
query sent...
Unable to free statement: connection pointer is NULL

*** Exited normally ***


estoy usando Postgresql 9.3, Archlinux y Qt5.2

de ante mano, muchas gracias por todo hermano

freddy







*============================================="El tamaño de tus logros
depende del tamaño de tus metas." *


El 28 de enero de 2014, 18:48, Freddy Martinez Garcia <
freddy311...@gmail.com> escribió:

> Hola Alvaro y gracias por tu pronta respuesta hermano.
>
> mira, este es mi código... a lo mejor me dices dónde está el problema....
>
> la tabla donde quiero guardar los ficheros contiene 2 campos solamente
> pues ahora estoy probando... tienen un campo fileid que es numerico y un
> campo filedata que es el bytea[]
>
> este es mi codigo
>
>     QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
>     db.setHostName("localhost");
>     db.setPort(5432);
>     db.setDatabaseName("bpg");
>     db.setUserName("postgres");
>     db.setPassword("");
>     if (db.open())
>     {
>         QFile file("/home/freddy/Trabajo/bpg/diseno/rubro 7.xlsx");
>         if (!file.open(QIODevice::ReadOnly))
>         {
>             qDebug("file error...");
>             exit(0);
>         }
>         QByteArray bytesAr = file.readAll();
>         std::cout << "sending query..." << std::endl;
>
>         QSqlQuery query(db);
>         query.prepare("insert into files values(:id,:data)");
>         query.bindValue(":id",18);
>         query.addBindValue(bytesArr);
>         if (!query.exec())
>         {
>             qDebug(query.lastError().driverText().toLatin1());
>         }
>         cout << "query sent..." << endl;
>         file.close();
>         db.close();
>     }
>
> la salida de mi programa dice esto:
>
> sending query...
> QPSQL: Unable to create query
> query sent...
> Unable to free statement: connection pointer is NULL
>
> *** Exited normally ***
>
>
> estoy usando Postgresql 9.3, Archlinux y Qt5.2
>
> de ante mano, muchas gracias por todo hermano
>
> freddy
>
>
>
>
>
>
>
>
> *============================================= "El tamaño de tus logros
> depende del tamaño de tus metas." *
>
>
> El 28 de enero de 2014, 18:31, Alvaro Herrera 
> <alvhe...@2ndquadrant.com>escribió:
>
> Freddy Martinez Garcia escribió:
>> > hola a todos amigos...
>> >
>> > estoy tratando de escribir en un fichero binario en un campo BYTEA, es
>> > decir, desde el cliente enviar al servidor un fichero binario. La
>> consulta
>> > que estoy haciendo es esta... por ejemplo:
>> >
>> > "insert into tb_files vluaes ( '{mifichero}' )"
>>
>> Lo estás haciendo mal.  Usa addBindValue para pasar los datos en vez de
>> interpolarlos tú mismo en la consulta.
>>
>> --
>> Álvaro Herrera                http://www.2ndQuadrant.com/
>> PostgreSQL Development, 24x7 Support, Training & Services
>>
>
>

Responder a