Михаиллл
МихаилллDec. 10, 2018, 8:42 a.m.

При подключении к PostgreSQL не удается открыть таблицу

PostgreSQL, Qt

Добрый день.
Я подключился к базе PostgreSQL.
Пытаюсь подключиться к таблице

QSqlTableModel *SearchTableModel = new QSqlTableModel(this);
SearchTableModel->setTable("ResumePostgresSQL");
SearchTableModel->select();

но выдает ошибку:
QSqlError("", "Unable to find table ResumePostgresSQL", "")
при этом эта таблица у меня точно есть.
Скажите пожалуйста, как подключиться к этой таблице

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!

15
Evgenii Legotckoi
  • Dec. 10, 2018, 1:15 p.m.

Зайдите в консоль программы psql и посмотрите список таблиц с помощью следующей команды

\dt

Ну и ещё один момент. А соединение с базой данных в данный момент активно? Мало ли, вызов таблицы происходит раньше, чем следовал бы.

    Михаиллл
    • Dec. 11, 2018, 3:12 a.m.

    Но я в редакторе посмотрел, база с таблицей точно есть и в ней хранится тестовая информация.
    У меня стоит несколько версийPSQL. С 11 версии таблица считывается, а с 9,6 и 10 нет.
    И как оказалось HostName указывать не нужно и без него открывается.

      Evgenii Legotckoi
      • Dec. 11, 2018, 3:16 a.m.

      Ну это у вас считывается без хоста потому, что установка локальная. Если база данных будет крутиться на другом компьютере, то ничего считываться не будет.

      А по поводу версий 9,6, 10, 11 ничего удивительного, если у вас все три одновременно установлены. Один порт может слушать только одно приложение PostgreSQL. У них же у всех один и тот же порт. Только одно приложение может слушать порт. Соответственно только одно и отвечает. А остальные скорее всего даже и не запустились.

        Михаиллл
        • Dec. 11, 2018, 3:30 a.m.
        • (edited)

        Но у них разные порты: 5435, 5434, 5433, 5432

          Evgenii Legotckoi
          • Dec. 11, 2018, 3:42 a.m.

          Вообще нормально идёт только порт 5432. Не знаю, может быть при установке нескольких приложений и занятости одного порта там автоматически устанавливается другой. Может быть.

          Вообще, в чём проблема, если у вас одна из версий работает? В нормальном режиме никто не использует несколько версий приложения базы данных. В этом особо смысла нет. Каждое приложение PostgreSQL может хранить в себе сколько угодно баз данных.

            Михаиллл
            • Dec. 11, 2018, 3:44 a.m.

            Проблема с переносом базы данных. В 11 версии не меняется таблспэйс. Иначе как базу прикрепить к приложению и перенести на другой комп?

              Evgenii Legotckoi
              • Dec. 11, 2018, 3:49 a.m.

              Я правильно понимаю, что вот на такое в интеренте вы уже наталкивались?

              I assume that your tablespace name is tblspc.

              1. Get Oid of your tablespace
              test=# SELECT oid,spcname FROM pg_tablespace WHERE spcname = 'tblspc';
                oid  | spcname 
              -------+---------
               24580 | tblspc
              (1 row)
              
              1. Stop postgres
              $ pg_ctl -D $PGDATA stop
              
              1. Move directory from old one to new one
              $ mv /old/dir /new/dir
              

              or

              $ cp -r /old/dir /new/dir
              $ rm -rf /old/dir
              
              1. Change tablespace's link to new directory
              $ cd $PGDATA/pg_tblspc
              $ rm 24580
              $ ln -s /new/dir 24580
              
              1. Start postgres
              $ pg_ctl -D $PGDATA start
              

              Then, you can see the tablespace's directory has changed.

              test=# SELECT pg_tablespace_location(24580);
               pg_tablespace_location
              ------------------------
               /new/dir
              (1 row)
              
                Михаиллл
                • Dec. 11, 2018, 5:27 a.m.

                Нет, не доводилось. Как думаете, дело может быть в порте? Если все удалить и установить 9,6 в порт 5432, выше шанс что база заработает?

                  Evgenii Legotckoi
                  • Dec. 11, 2018, 5:54 a.m.

                  Не знаю, что вы имеете ввиду под удалить всё, но попробовать хотя бы порт установить на 5432 стоит.

                  вы смотрели номера портов в какой-то конфигурации? Или как-то иначе?

                    Михаиллл
                    • Dec. 11, 2018, 6:36 a.m.

                    да, они отображаются возле базы.
                    Удалил все лишнее, оставил 9,6.
                    Теперь порт этой версии 5432.
                    Тем не менее все та же ошибка

                      Evgenii Legotckoi
                      • Dec. 11, 2018, 7:45 a.m.

                      Хорошо, пойдём иначе, а какой тип ошибки у той QSqlError?

                      Что возвращает этот метод?

                      QSqlError::ErrorType QSqlError::type() const
                      
                        Михаиллл
                        • Dec. 11, 2018, 8:45 a.m.

                        Скажите пожалуйста, как им воспользоваться? Если его записать в qDebug()<<, то выдает ошибку компиляции.
                        Также заметил если бд и таблица состоит из цифр то выдает ошибку :
                        QSqlError("42601", "QPSQL: Unable to create query", "ОШИБКА: ошибка синтаксиса (примерное положение: \"123\")\nLINE 1: SELECT \"id\", \"int\" FROM 123\n
                        где 123 - название таблицы
                        а если в той-же бд создана таблица с названием, состоящим не только из цифр, то выдает ошибку :
                        QSqlError("", "Unable to find table Test1", "")
                        также в первом случае даже отображается название одного из двух столбцов

                          Evgenii Legotckoi
                          • Dec. 11, 2018, 9:23 a.m.
                          • (edited)

                          Скажите пожалуйста, как им воспользоваться? Если его записать в qDebug()<<, то выдает ошибку компиляции

                          что именно написано в ошибке?

                          ммм.. вас вообще как угораздило назвать таблицу 123 ? не надо называть таблицы только цифрами, а также наименования столбцов только цифрами.

                          В том же самом MySQL вообще в документации это запрещено. Мне лень копаться в документации PostgreSQL. Но, наверняка я найду что-то подобное.

                          Запрос скорее всего воспринимается не как имя таблице а как переменная типа int...

                            Михаиллл
                            • Dec. 11, 2018, 11 a.m.

                            врятли, иначе бы в описании ошибки не появились название 2 моих столбцов.
                            и уже точно можно так называть названия баз, в 11 версии у меня как раз к такой базе вышло подключиться и получить из нее информацию.
                            но у меня есть другая таблица с названием из цифр и букв, и к ней не выходит подключиться.
                            Если пишу так:

                             qDebug()<<QSqlError::ErrorType QSqlError::type() const;
                            
                            

                            то говорит что нет скобочки:
                            D:\QTProject\ReaderResume\mainwindow.cpp:1106: ошибка: expected '(' for function-style cast or type construction

                              Михаиллл
                              • Dec. 12, 2018, 12:52 p.m.

                              Оказывается оно все переводит в нижний регистр и нужно так писать:

                              SearchTableModel->setTable("\"Test2\"");
                              

                                Comments

                                Only authorized users can post comments.
                                Please, Log in or Sign up
                                AD

                                C ++ - Test 004. Pointers, Arrays and Loops

                                • Result:50points,
                                • Rating points-4
                                m

                                C ++ - Test 004. Pointers, Arrays and Loops

                                • Result:80points,
                                • Rating points4
                                m

                                C ++ - Test 004. Pointers, Arrays and Loops

                                • Result:20points,
                                • Rating points-10
                                Last comments
                                i
                                innorwallNov. 15, 2024, 6:30 a.m.
                                Qt/C++ - Lesson 065. The correspondence of HTTP errors to server response errors in QNetworkAccessManager s Midsummer Classic in Kansas City priligy online pharmacy
                                i
                                innorwallNov. 15, 2024, 5:44 a.m.
                                Qt/C++ - Lesson 039. How to paint stroke in QSqlTableModel by value in the column? Many OPKs would advise users to start using the test strips around day 9 of your cycle, considering day 1 to be the first day of full menstrual flow buy priligy australia
                                i
                                innorwallNov. 15, 2024, 2:27 a.m.
                                Release of C++/Qt and QML application deployment utility CQtDeployer v1.4.0 (Binary Box) optionally substituted alkoxy, optionally substituted alkenyloxy, optionally substituted alkynyloxy, optionally substituted aryloxy, OCH, OC H, OC H, OC H, OC H, OC H, OC H, O C CH, OCH CH OH, O…
                                i
                                innorwallNov. 14, 2024, 9:26 p.m.
                                Qt/C++ - Lesson 031. QCustomPlot – The build of charts with time buy generic priligy We can just chat, and we will not lose too much time anyway
                                i
                                innorwallNov. 14, 2024, 7:03 p.m.
                                Qt/C++ - Lesson 060. Configuring the appearance of the application in runtime I didnt have an issue work colors priligy dapoxetine 60mg revia cost uk August 3, 2022 Reply
                                Now discuss on the forum
                                t
                                tonypeachey1Nov. 15, 2024, 6:04 a.m.
                                google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
                                i
                                innorwallNov. 15, 2024, 5:50 a.m.
                                добавить qlineseries в функции priligy for sale Gently flush using an ear syringe
                                i
                                innorwallNov. 11, 2024, 10:55 a.m.
                                Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
                                9
                                9AnonimOct. 25, 2024, 9:10 a.m.
                                Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

                                Follow us in social networks