Título: ¿Cómo incluir el nombre del esquema de la base de datos en una consulta con pqxx::from_query? Publicado por: jstech en 1 Octubre 2023, 18:49 pm Necesito leer varias columnas de una tabla en una aplicación C++ que usa libpqxx. Además del nombre de la tabla es necesario indicar el nombre del esquema, si no, la consulta no funciona.
He probado a hacerlo construyendo un string con la query de la siguiente forma y funciona correctamente: connection Connection(ConnectionCommand); work W(Connection); std::string strQuery = "SELECT * FROM my_schema.my_table"; result queryResult = W.exec(strQuery); for (pqxx::result::const_iterator tableFile = queryResult.begin(); tableFile != queryResult.end(); ++tableFile) { int value1 = tableFile["col1"].as<int>(); std::string value2 = tableFile["col2"].as<std::string>(); std::string value3 = tableFile["col3"].as<std::string>(); } Connection.close(); Pero me interesaría haer la SELECT usando la función from_table Estoy usando este código que funciona correctamente cuando en la SELECT no es necesario especificar el nombre del esquema de la base de datos: connection Connection(ConnectionCommand); work W(Connection); stream_from TableReader{W,from_table,_PG_Params.TableName}; tuple<std::string, std::string,std::string,std::string,std::string> tablerow; while (TableReader >> tablerow) { int value1 = get<0>(tablerow); std::string value2 = get<1>(tablerow); std::string value2 = get<2>(tablerow); } TableReader.complete(); Connection.close(); Pero en la base de datos donde está esta tabla sí es necesario indicar el nombre del esquema y, tras consultar documentación, la estructura _PG_Params consta de estos campos: struct postgreSqlParameters { string DataBaseName; string TableName; string User; string IP; string Port; string Password; } Como no aparece un campo que correspnda al nombre del esquema, he probado a incluirlo formando parte del nombre de la tabla, es decir, el nombre de la tabla es "my_schema.my_table", en lugar de "my_table", pero entonces la SELECT no funciona, dando lugar a un error en tiempo de ejecución. Agradezco cualquier sugerencia sobre cómo puedo hacer para que from_table tenga en cuenta el nombre del esquema. |