Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

218
Vistas
conectarse a questDB con libpqxx

Tengo un problema para conectarme a QuestDB con libpqxx, puedo establecer una conexión usando el cliente postgresql según las instrucciones aquí: https://questdb.io/docs/guidePSQL

sin embargo, cuando voy a conectarme a QuestDB, usando mi programa simple, que es más o menos una versión ligeramente modificada del programa estándar "para empezar": https://github.com/jtv/libpqxx

 #include <iostream> #include <pqxx/pqxx> int main(){ try { pqxx::connection C( "user=admin " "hostaddr=127.0.0.1 " "password=quest " "dbname=qdb" "port=8812 "); std::cout << "Connected to " << C.dbname() << std::endl; pqxx::work W{C}; pqxx::result R{W.exec("SELECT name FROM employee")}; std::cout << "Found " << R.size() << "employees:\n"; for (auto row: R) std::cout << row[0].c_str() << '\n'; std::cout << "Doubling all employees' salaries...\n"; W.exec0("UPDATE employee SET salary = salary*2"); std::cout << "Making changes definite: "; W.commit(); std::cout << "OK.\n"; } catch (std::exception const &e) { std::cerr << e.what() << '\n'; return 1; } return 0; }

.. me sale un error:

no se pudo conectar al servidor: conexión rechazada ¿El servidor se ejecuta en el host "127.0.0.1" y acepta conexiones TCP/IP en el puerto 5432?

lo que también complica las cosas posiblemente, es que no puedo encontrar pg_hba.conf en ninguna parte, ¿siguen siendo algo en la versión 10 de postgresql? tengo /usr/lib/postgresql/10 pero no hay archivos de configuración... y también busqué en la máquina... no encontré nada. cualquier ayuda sería muy apreciada.

gracias

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

La documentación oficial de libpqxx establece que:

La cadena de conexión consta de pares atributo=valor separados por espacios, por ejemplo, "usuario=juan contraseña=1x2y3z4". referencia

Su cadena de conexión es:

 pqxx::connection C( "user=admin " "hostaddr=127.0.0.1 " "password=quest " "dbname=qdb" "port=8812 ");

Le falta un espacio después de qdb , por lo que la cadena de conexión correcta es:

 pqxx::connection C( "user=admin " "hostaddr=127.0.0.1 " "password=quest " "dbname=qdb " "port=8812 ");

Lo acabo de probar y me funciona bien.

Por otro lado, la siguiente sentencia SQL:

 W.exec0("UPDATE employee SET salary = salary*2");

No funcionará, UPDATE aún no es compatible con QuestDB. Puede encontrar más detalles sobre la compatibilidad con SQL en la documentación oficial, aquí .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda