Из документации для pqxx метод prepared()
устарел. Поэтому, используя ваш фрагмент кода, я внесу следующие изменения, чтобы использовать новый оператор exec_prepared()
, и получу ваш параметр:
std::string sql =
"SELECT c.column_name, c.data_type "\
"FROM information_schema.table_constraints tc"
"JOIN information_schema.constraint_column_usage AS ccu USING (constraint_schema, constraint_name)"
"JOIN information_schema.columns AS c ON c.table_schema = tc.constraint_schema "
"AND tc.table_name = c.table_name AND ccu.column_name = c.column_name "
"WHERE constraint_type = 'PRIMARY KEY' and tc.table_name = '$1';";
C->prepare("determine_primary_key", sql.c_str());
pqxx::result r = W->exec_prepared("determine_primary_key", "<your_table_name_here>");
Но, если вы все еще используете старую версию pqxx и вам необходимо продолжать использовать prepared()
, вы можете сделать следующее:
std::string sql =
"SELECT c.column_name, c.data_type "\
"FROM information_schema.table_constraints tc"
"JOIN information_schema.constraint_column_usage AS ccu USING (constraint_schema, constraint_name)"
"JOIN information_schema.columns AS c ON c.table_schema = tc.constraint_schema "
"AND tc.table_name = c.table_name AND ccu.column_name = c.column_name "
"WHERE constraint_type = 'PRIMARY KEY' and tc.table_name = '$1';";
C->prepare("determine_primary_key", sql.c_str());
pqxx::result r = W->prepared("determine_primary_key")("<your_table_name_here>").exec();
Вы можете проверить документацию libpqxx , чтобы получить больше информации о prepared()
и exec_prepared()
.