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 >> > >