抛出'pqxx :: broken_connection'实例后调用终止

萨梅拉

当我使用pqxx创建到psql数据库的连接数组时,连接创建成功,并且它们在该数组中。但是,当我要使用一个连接时,会出现以下错误。我还介绍了创建数组的方式。谁能告诉我原因。

for(int i=0;i<10;i++)
    {

        connection c("dbname=test user=postgres password=abc123\
                     hostaddr=127.0.0.1 port=5432");
        conList[i]=&c;
    }

  for (int j=0;j<10;j++)
        {
            cout<<conList[j]->is_open()<<endl; // this returns 0
        }

conList[0]->activate(); // at this point it gives the following error

抛出'pqxx :: broken_connection'实例之后调用终止方法what():与数据库的连接失败中止

比尔兹

您正在将局部变量的地址存储c在中conList,在第一次for循环之后,那些局部变量被释放,conList存储悬空指针,对悬空指针的调用函数调用具有未定义的行为

for(int i=0;i<10;i++)
{

    connection c("dbname=test user=postgres password=abc123\
                 hostaddr=127.0.0.1 port=5432");
    conList[i]=&c;  // c is local variable
}   // c is released here

for (int j=0;j<10;j++)
{
    cout<<conList[j]->is_open()<<endl;  // undefined behavior
}

conList[0]->activate(); // undefined behavior

考虑下面的变化?

存储值而不是指针 conList

for(int i=0;i<10;i++)
{

    connection c("dbname=test user=postgres password=abc123\
                 hostaddr=127.0.0.1 port=5432");
    conList[i] = c;  // make a copy of c
}   

for (int j=0;j<10;j++)
{
    cout<<conList[j].is_open()<<endl;  
}

conList[0].activate(); 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

pqxx:尝试连接到 posgres 数据库时发生了 Broken_connection

来自分类Dev

在抛出 std::exception 实例后调用终止

来自分类Dev

抛出'std :: out_of_range'实例后调用终止

来自分类Dev

抛出'std :: regex_error'实例后调用终止

来自分类Dev

抛出'std :: out_of_range'实例后调用终止

来自分类Dev

在抛出'kj :: ExceptionImpl'实例后,Cap'n Proto终止被调用

来自分类Dev

抛出'std :: regex_error'实例后调用终止

来自分类Dev

在抛出“std::system_error”实例后调用 Tensorflow 终止

来自分类Dev

为什么在插入析构函数时总是得到“在抛出...实例后终止调用”?

来自分类Dev

为什么在抛出'std :: bad_alloc'实例后终止调用?

来自分类Dev

在字符串函数中抛出“ char const *”的实例后调用终止

来自分类Dev

在C ++中抛出'std :: out_of_range'实例后调用终止

来自分类Dev

抛出'std :: out_of_range'what():vector :: _ M_range_check实例后终止调用

来自分类Dev

抛出“std::system_error”线程池实例后调用终止

来自分类Dev

抛出'std::bad_alloc'的实例后调用C++终止

来自分类Dev

在抛出“std::regex_error”what() 实例后调用终止:括号未关闭

来自分类Dev

抛出“std::invalid_argument”实例后调用终止 what(): leetcode 问题中的 stoi 错误

来自分类Dev

Node.js错误“抛出'std :: bad_alloc'what():std :: bad_alloc实例后调用终止”

来自分类Dev

在PHP中使用system()执行程序时出错:抛出'std :: logic_error'实例后终止调用

来自分类Dev

在我使用shared_ptr之后,抛出“ std :: bad_weak_ptr的实例后调用终止”是什么

来自分类Dev

比较二进制数字输入的字符时,抛出'std :: out_of_range实例后调用终止

来自分类Dev

将字母向前移动 3 个字母的程序,错误:在抛出 'std::out_of_range' 实例后调用终止

来自分类Dev

当我的训练数据很大时,为什么我会在抛出“ std :: bad_alloc实例”后收到“终止调用”?

来自分类Dev

"if (argc < 2 || argc > 2)" 应该有 2 个参数吗?& 在抛出“std::out_of_range”错误实例后调用终止

来自分类Dev

C ++多线程:抛出“ std :: length_error”实例后终止

来自分类Dev

未抛出可抛出实例

来自分类Dev

在抛出'std :: length_error'what()实例之后调用终止终止what():basic_string :: __ S_create

来自分类Dev

调用 Close 后抛出 System.ObjectDisposedException

来自分类Dev

抛出异常后返回FALSE

Related 相关文章

  1. 1

    pqxx:尝试连接到 posgres 数据库时发生了 Broken_connection

  2. 2

    在抛出 std::exception 实例后调用终止

  3. 3

    抛出'std :: out_of_range'实例后调用终止

  4. 4

    抛出'std :: regex_error'实例后调用终止

  5. 5

    抛出'std :: out_of_range'实例后调用终止

  6. 6

    在抛出'kj :: ExceptionImpl'实例后,Cap'n Proto终止被调用

  7. 7

    抛出'std :: regex_error'实例后调用终止

  8. 8

    在抛出“std::system_error”实例后调用 Tensorflow 终止

  9. 9

    为什么在插入析构函数时总是得到“在抛出...实例后终止调用”?

  10. 10

    为什么在抛出'std :: bad_alloc'实例后终止调用?

  11. 11

    在字符串函数中抛出“ char const *”的实例后调用终止

  12. 12

    在C ++中抛出'std :: out_of_range'实例后调用终止

  13. 13

    抛出'std :: out_of_range'what():vector :: _ M_range_check实例后终止调用

  14. 14

    抛出“std::system_error”线程池实例后调用终止

  15. 15

    抛出'std::bad_alloc'的实例后调用C++终止

  16. 16

    在抛出“std::regex_error”what() 实例后调用终止:括号未关闭

  17. 17

    抛出“std::invalid_argument”实例后调用终止 what(): leetcode 问题中的 stoi 错误

  18. 18

    Node.js错误“抛出'std :: bad_alloc'what():std :: bad_alloc实例后调用终止”

  19. 19

    在PHP中使用system()执行程序时出错:抛出'std :: logic_error'实例后终止调用

  20. 20

    在我使用shared_ptr之后,抛出“ std :: bad_weak_ptr的实例后调用终止”是什么

  21. 21

    比较二进制数字输入的字符时,抛出'std :: out_of_range实例后调用终止

  22. 22

    将字母向前移动 3 个字母的程序,错误:在抛出 'std::out_of_range' 实例后调用终止

  23. 23

    当我的训练数据很大时,为什么我会在抛出“ std :: bad_alloc实例”后收到“终止调用”?

  24. 24

    "if (argc < 2 || argc > 2)" 应该有 2 个参数吗?& 在抛出“std::out_of_range”错误实例后调用终止

  25. 25

    C ++多线程:抛出“ std :: length_error”实例后终止

  26. 26

    未抛出可抛出实例

  27. 27

    在抛出'std :: length_error'what()实例之后调用终止终止what():basic_string :: __ S_create

  28. 28

    调用 Close 后抛出 System.ObjectDisposedException

  29. 29

    抛出异常后返回FALSE

热门标签

归档