gpt4 book ai didi

c++ - 如何使用 libpqxx 获取 postgres sqlerrorcode?

转载 作者:行者123 更新时间:2023-12-03 12:47:07 25 4
gpt4 key购买 nike

我想知道如何在插入等后获取 postgres sql 错误代码。?

最佳答案

这是来自文档的代码片段:

try
{
// ...
}
catch (const pqxx::pqxx_exception &e)
{
std::cerr << e.base().what() << std::endl;
const pqxx::sql_error *s=dynamic_cast<const pqxx::sql_error*>(&e.base());
if (s) std::cerr << "Query was: " << s->query() << std::endl;
}

一旦出现 sql_error,您就可以从中检索 sql 状态:

std::cerr  << "SQL STATE: " << s->sqlstate() << std::endl;

所以改变上面的代码sippet:

pqxx::connection dbConn("dbname=tester user=foo");
pqxx::result r;
try
{
pqxx::work transx(dbConn);
std::string query ("SELECT name FROM compamy");
r = transx.exec(query);
transx.commit(); // Not necessary for a SELECT, but good practice
}
catch (const pqxx::pqxx_exception &e)
{
std::cerr << e.base().what() << std::endl;
const pqxx::sql_error *s=dynamic_cast<const pqxx::sql_error*>(&e.base());
if (s) {
std::cerr << "SQL Error code: " << s->sqlstate() << std::endl;
}
}

假设表名称是 company,而不是 compamy,则得到以下输出:

SQL Error code: 42P01

Postgresql error codes 查找该代码表:

42P01   undefined_table

关于c++ - 如何使用 libpqxx 获取 postgres sqlerrorcode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56233724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com