Ошибка загрузки библиотеки функций postgres возможно драйвер не установлен

Проблемы при запуске, входе и проверке пользователя При запуске и входе в «Форсайт. Аналитическая платформа» в отдельных случаях могут возникать следующие ошибки. Проблемы при запуске При запуске продукта «Форсайт. Аналитическая платформа» обнаружено нарушение целостности платформы, вместо окна регистрации появляется следующее сообщение об ошибке: Нарушение целостности файлов: . Эта проблема может возникнуть, если исполняемые файлы […]

Содержание

  1. Проблемы при запуске, входе и проверке пользователя
  2. Проблемы при запуске
  3. Проблемы при входе
  4. Проблемы при проверке пользователя
  5. Проблемы при запуске, входе и проверке пользователя
  6. Проблемы при запуске
  7. Проблемы при входе
  8. Проблемы при проверке пользователя

Проблемы при запуске, входе и проверке пользователя

При запуске и входе в «Форсайт. Аналитическая платформа» в отдельных случаях могут возникать следующие ошибки.

Проблемы при запуске

При запуске продукта «Форсайт. Аналитическая платформа» обнаружено нарушение целостности платформы, вместо окна регистрации появляется следующее сообщение об ошибке:

Нарушение целостности файлов: .

Эта проблема может возникнуть, если исполняемые файлы или библиотеки отсутствуют, или не соответствуют эталону.

При возникновении данной ситуации следует обратиться к администратору.

При запуске продукта «Форсайт. Аналитическая платформа» не появляется сообщение об ошибке, но «Форсайт. Аналитическая платформа» завершает свою работу.

Если в окне авторизации нажать кнопку « Отмена », то сообщение об ошибке отображено не будет и «Форсайт. Аналитическая платформа» завершит свою работу.

при работе с 64-разрядной операционной системой используется программный комплекс DeviceLock версии ниже 7.1;

произошли ошибки в процессе установки Framework.

Ниже перечислены варианты решения данной проблемы. Если вариант решения не помогает, перейдите к следующему варианту.

Проверьте соответствие версии DeviceLock типу системы, установите программный комплекс DeviceLock более новой версии, например, 7.1 или выше.

Переустановите Microsoft .NET Framework, предварительно удалив Microsoft .NET Framework Client 4 Profile и Microsoft .NET Framework 4 Exstended.

При запуске продукта «Форсайт. Аналитическая платформа» появляется одно из сообщений:

В настройках «Форсайт. Аналитическая платформа» указана необходимость автоматического обновления версий.
Обновление версии невозможно, так как выполнение завершилось с ошибкой с кодом -1073741515.

Studio.exe — Не удалось найти компонент.
Приложению не удалось запуститься, поскольку mfc110u.dll не был найден. Повторная установка приложения может исправить эту проблему.

Studio.exe — Ошибка приложения.
Ошибка при инициализации приложения (0xc0000135). Для выхода из приложения нажмите кнопку «ОК».

Эта проблема может возникнуть, если на рабочей станции отсутствуют необходимые пререквизиты.

Запустите инсталлятор еще раз и на странице « Обслуживание программ » выберите пункт « Исправить ».

При запуске продукта «Форсайт. Аналитическая платформа» появляется сообщение:

Запуск программы невозможен, так как на компьютере отсутствует api-ms-win-crt-runtime-l1-1-0.dll. Попробуйте переустановить программу.

Эта проблема может возникнуть, если на рабочей станции удалён или некорректно установлен пререквизит Microsoft Visual C++ 2015 Redistributable Package.

Запустите инсталлятор Microsoft Visual C++ 2015 Redistributable Package, разрядность инсталлятора должна соответствовать разрядности «Форсайт. Аналитическая платформа». Инсталлятор содержится в папке ISSetupPrerequisites , расположенной на одном уровне с инсталлятором продукта «Форсайт. Аналитическая платформа».

Для установки Microsoft Visual C++ 2015 Redistributable Package на Windows 8.1 или Windows Server 2012 R2 требуются обновления KB2975061 и KB2919355.

Проблемы при входе

При авторизации в «Форсайт. Аналитическая платформа» в окне регистрации появляется следующее сообщение:

Версия репозитория выше/ниже версии «Форсайт. Аналитическая платформа».

Эта проблема может возникнуть, если версия репозитория не соответствует версии платформы.

При возникновении данной ситуации следует обратиться к администратору.

При запуске продукта «Форсайт. Аналитическая платформа» появляется следующее сообщение с ошибкой:

Ошибка при подключении к базе данных. Клиент не найден.

клиентская часть СУБД Oracle не установлена;

несовпадение разрядностей «Форсайт. Аналитическая платформа» и клиентской части СУБД Oracle.

Проверьте, установлена ли клиентская часть СУБД Oracle и совпадает ли её разрядность с разрядностью «Форсайт. Аналитическая платформа».

При использовании СУБД Oracle до 10.2.0.3 версии при подключении к базе данных появляется следующее сообщение:

Ошибка при вызове функции Oracle.
ORA-06413: Connection not open.
Класс ошибки: EExternal
Источник: SomSomPackStd.cpp, строка 2297.

Эта проблема может возникнуть, если используется СУБД Oracle до версии 10.2.0.3 и в пути установки «Форсайт. Аналитическая платформа» имеются круглые скобки. Эта особенность СУБД Oracle была исправлена в версии 10.2.0.3.

Примеры пути установки «Форсайт. Аналитическая платформа»:

  • Если была установка 32х-разрядным инсталлятором на 32х-разрядную ОС Windows: C:Program FilesForesight;
  • Если была установка 32х-разрядным инсталлятором на 64х-разрядную ОС Windows: C:Program Files (x86)Foresight;
  • Если была установка 64х-разрядным инсталлятором на 64х-разрядную ОС Windows: C;Program FilesForesight.

Переустановите «Форсайт. Аналитическая платформа» в папку, путь до которой не содержит круглых скобок.

Обновите клиент СУБД Oracle до версии 10.2.0.3 или выше.

Обратитесь к документации по СУБД и установите обновление 5059238.

При подключении к репозиторию может возникнуть ошибка:

Ошибка загрузки библиотеки функций PostgreSQL. Возможно, драйвер не установлен.

Отсутствует установленный драйвер PostgreSQL или разрядность драйвера отличается от разрядности «Форсайт. Аналитическая платформа». Также ошибка может проявляться, если на компьютере пользователя отсутствует пакет Microsoft Visual C++ Runtime Library даже при корректно установленном драйвере СУБД.

Проверьте наличие установленного драйвера и его разрядность. Если необходимый драйвер установлен, то скачайте с сайта www.microsoft.com и установите файл vcredist необходимой разрядности.

Также рекомендуется в системную переменную PATH добавить путь к папке, в которую установлены драйвера для СУБД PostgreSQL.

При подключении к репозиторию на базе СУБД Oracle через BI-сервер может возникнуть ошибка:

Connection to database failed. Oracle 11.x/12.x is not found.

Веб-сервер IIS взаимодействует с клиентом Oracle под пользователями Network Service и IUSR, а не под тем пользователем, который обращается к веб-серверу. В доступе к клиенту Oracle может быть отказано, если у пользователей Network Service и IUSR нет соответствующих прав доступа.

Для решения проблемы необходимо предоставить права на доступ к папке с клиентом Oracle пользователям Network Service и IUSR.

Проблемы при проверке пользователя

При авторизации в «Форсайт. Аналитическая платформа» в окне регистрации появляется следующее сообщение об ошибке:

Неверное имя пользователя/пароль.

Поле Имя пользователя пустое/Не задан пароль.

При авторизации имя пользователя или пароль не были указаны или были указаны неверно.

Повторите ввод имени и пароля в окне регистрации.

При авторизации в «Форсайт. Аналитическая платформа» в окне регистрации появляется следующее сообщение:

Политикой безопасности предписано изменить пароль.

Если новый пароль не задать или нажать кнопку « Отмена » появляется сообщение с ошибкой:

Пользователь обязан сменить пароль.

Эта проблема может возникнуть, если заданный в редакторе политик максимальный срок действия пароля истек.

Необходимо сменить пароль. Для этого в окне с уведомлением о необходимости смены пароля введите пароль и нажмите кнопку « Да ».

Если новый пароль не удовлетворяет каким-либо требованиям парольной политики, то ниже полей ввода будет отображена соответствующая информация. Задайте пароль в соответствии с правилами. После смены пароля сеанс работы с веб-приложением будет завершен. Для входа в систему откройте новое окно обозревателя.

При авторизации в «Форсайт. Аналитическая платформа» появляется следующее сообщение:

исчерпан лимит ошибок при вводе пароля;

пользователь заблокирован администратором.

При возникновении данной ситуации следует обратиться к администратору.

При авторизации в «Форсайт. Аналитическая платформа» в окне регистрации появляется одно из следующих сообщений:

Вход в систему пользователю ‘ ‘ запрещен.
Доступ в систему с данной рабочей станции ‘ ‘ для данного пользователя запрещен.

Вход в систему пользователю ‘ ‘ запрещен.
Доступ в систему со станции с IP-адресом ‘ ‘ для пользователя ‘ ‘ запрещен.

Вход в систему пользователю ‘ ‘ запрещен.
Доступ в систему со станции с MAC-адресом ‘ ‘ запрещен.

Вход в систему пользователю ‘ ‘ запрещен.
Доступ в систему пользователю ‘ ‘ в данное время запрещен. Окончание периода запрета — ЧЧ:ММ:СС.

Пользователю отказано в доступе:

с данной рабочей станции;

со станции с определенным IP-адресом;

со станции с определенным MAC-адресом;

в этот день недели;

При возникновении данной ситуации следует обратиться к администратору.

При авторизации в «Форсайт. Аналитическая платформа» в окне регистрации появляется следующее сообщение:

Пользователь не имеет прав доступа к навигатору объектов.

Эта проблема может возникнуть, если у пользователя отсутствует привилегия « Вход в навигатор объектов ».

При возникновении данной ситуации следует обратиться к администратору.

При авторизации в веб-приложении появляется сообщение:

Доступ запрещен.
Обратитесь к администратору.

Регистрация в настольном приложении происходит без ошибок.

Эта проблема может возникнуть, если некорректно настроены параметры конфигурационного файла SQLNET.ORA. Файл расположен по пути Snetworkadmin, где S — путь до места установки Oracle.

Для корректной парольной авторизации в конфигурационном файле SQLNET.ORA замените SQLNET.AUTHENTICATION_SERVICES = (NTS) на SQLNET.AUTHENTICATION_SERVICES = (NONE).

После установки веб-приложения, при попытке пройти процедуру авторизации система выдает ошибку о ненайденных сервисах (ServiceNotFound).

Адрес, по которому будет производиться обращение к веб-сервисам, задается в базовых настройках веб-приложения в файле PP.xml. Адрес к сервисам – регистрозависимый, поэтому при несоблюдении регистра в написании адреса, возникает ошибка о ненайденных сервисах.

Путь, по которому расположены данные файлы, зависит от типа используемого веб-сервера:

где S — путь, по которому установлено веб-приложение.

Открыв на редактирование файл PP.xml , необходимо проверить корректность адреса к веб-сервисам с учетом регистра в строке « service url=»S1″/> ». Где S1 – путь, по которому располагается BI-сервер.

Пути, используемые по умолчанию, при использовании сервера IIS:

http:// / fp BI_App_v9.2×64/axis2/services/PP.SOM.Som

Где — наименование или IP-адрес сервера, на котором функционирует BI-сервер.

При использовании сервера Apache путь, по которому располагается BI-сервер, настраивается через файл конфигурации.

После сохранения изменений следует открыть веб-приложение и повторно пройти процедуру авторизации.

После установки веб-приложения, при попытке пройти процедуру авторизации система выдает ошибку о неверном идентификаторе репозитория.

Закройте окно браузера и запустите настольное приложение «Форсайт. Аналитическая платформа» с правами Администратора на сервере с установленными веб-сервисами.

В открывшемся окне приветствия нажмите на кнопку « Настройка ». Из списка доступных репозиториев выберите тот, который используется при попытке авторизации в веб-приложении, и нажмите на кнопку « Редактировать ».

В открывшемся окне установите флажок « Для всех пользователей на компьютере », чтобы репозиторий стал доступным для всех пользователей и веб-сервисы могли взаимодействовать с репозиторием «Форсайт. Аналитическая платформа».

После сохранения изменений следует перезапустить веб-сервер, на котором установлены веб-сервисы, открыть веб-приложение и повторно пройти процедуру авторизации.

Во время создания или обновления пользователя возникает ошибка «При раздаче прав на объекты СУБД произошла ошибка. Обновите пользователей».

Если при работе с СУБД PostgreSQL используется схема по умолчанию Public, то у всех пользователей репозитория будет возможность создания таблиц. Данное поведение связана со спецификой работы СУБД PostgreSQL. Это может привести к проблемам обновления пользователей и учёту прав доступа у пользователей, которые являются администраторами репозитория. Для избежания ошибки рекомендуется создавать все объекты только под пользователями, входящими в группу Администраторы.

Источник

Проблемы при запуске, входе и проверке пользователя

При запуске и входе в «Форсайт. Аналитическая платформа» в отдельных случаях могут возникать следующие ошибки.

Проблемы при запуске

При запуске продукта «Форсайт. Аналитическая платформа» обнаружено нарушение целостности платформы, вместо окна регистрации появляется следующее сообщение об ошибке:

Нарушение целостности файлов: .

Эта проблема может возникнуть, если исполняемые файлы или библиотеки отсутствуют, или не соответствуют эталону.

При возникновении данной ситуации следует обратиться к администратору.

При запуске продукта «Форсайт. Аналитическая платформа» не появляется сообщение об ошибке, но «Форсайт. Аналитическая платформа» завершает свою работу.

Если в окне авторизации нажать кнопку « Отмена », то сообщение об ошибке отображено не будет и «Форсайт. Аналитическая платформа» завершит свою работу.

при работе с 64-разрядной операционной системой используется программный комплекс DeviceLock версии ниже 7.1;

произошли ошибки в процессе установки Framework.

Ниже перечислены варианты решения данной проблемы. Если вариант решения не помогает, перейдите к следующему варианту.

Проверьте соответствие версии DeviceLock типу системы, установите программный комплекс DeviceLock более новой версии, например, 7.1 или выше.

Переустановите Microsoft .NET Framework, предварительно удалив Microsoft .NET Framework Client 4 Profile и Microsoft .NET Framework 4 Exstended.

При запуске продукта «Форсайт. Аналитическая платформа» появляется одно из сообщений:

В настройках «Форсайт. Аналитическая платформа» указана необходимость автоматического обновления версий.
Обновление версии невозможно, так как выполнение завершилось с ошибкой с кодом -1073741515.

Studio.exe — Не удалось найти компонент.
Приложению не удалось запуститься, поскольку mfc110u.dll не был найден. Повторная установка приложения может исправить эту проблему.

Studio.exe — Ошибка приложения.
Ошибка при инициализации приложения (0xc0000135). Для выхода из приложения нажмите кнопку «ОК».

Эта проблема может возникнуть, если на рабочей станции отсутствуют необходимые пререквизиты.

Запустите инсталлятор еще раз и на странице « Обслуживание программ » выберите пункт « Исправить ».

При запуске продукта «Форсайт. Аналитическая платформа» появляется сообщение:

Запуск программы невозможен, так как на компьютере отсутствует api-ms-win-crt-runtime-l1-1-0.dll. Попробуйте переустановить программу.

Эта проблема может возникнуть, если на рабочей станции удалён или некорректно установлен пререквизит Microsoft Visual C++ 2015 Redistributable Package.

Запустите инсталлятор Microsoft Visual C++ 2015 Redistributable Package, разрядность инсталлятора должна соответствовать разрядности «Форсайт. Аналитическая платформа». Инсталлятор содержится в папке ISSetupPrerequisites , расположенной на одном уровне с инсталлятором продукта «Форсайт. Аналитическая платформа».

Для установки Microsoft Visual C++ 2015 Redistributable Package на Windows 8.1 или Windows Server 2012 R2 требуются обновления KB2975061 и KB2919355.

Проблемы при входе

При авторизации в «Форсайт. Аналитическая платформа» в окне регистрации появляется следующее сообщение:

Версия репозитория выше/ниже версии «Форсайт. Аналитическая платформа».

Эта проблема может возникнуть, если версия репозитория не соответствует версии платформы.

При возникновении данной ситуации следует обратиться к администратору.

При запуске продукта «Форсайт. Аналитическая платформа» появляется следующее сообщение с ошибкой:

Ошибка при подключении к базе данных. Клиент не найден.

клиентская часть СУБД Oracle не установлена;

несовпадение разрядностей «Форсайт. Аналитическая платформа» и клиентской части СУБД Oracle.

Проверьте, установлена ли клиентская часть СУБД Oracle и совпадает ли её разрядность с разрядностью «Форсайт. Аналитическая платформа».

При использовании СУБД Oracle до 10.2.0.3 версии при подключении к базе данных появляется следующее сообщение:

Ошибка при вызове функции Oracle.
ORA-06413: Connection not open.
Класс ошибки: EExternal
Источник: SomSomPackStd.cpp, строка 2297.

Эта проблема может возникнуть, если используется СУБД Oracle до версии 10.2.0.3 и в пути установки «Форсайт. Аналитическая платформа» имеются круглые скобки. Эта особенность СУБД Oracle была исправлена в версии 10.2.0.3.

Примеры пути установки «Форсайт. Аналитическая платформа»:

  • Если была установка 32х-разрядным инсталлятором на 32х-разрядную ОС Windows: C:Program FilesForesight;
  • Если была установка 32х-разрядным инсталлятором на 64х-разрядную ОС Windows: C:Program Files (x86)Foresight;
  • Если была установка 64х-разрядным инсталлятором на 64х-разрядную ОС Windows: C;Program FilesForesight.

Переустановите «Форсайт. Аналитическая платформа» в папку, путь до которой не содержит круглых скобок.

Обновите клиент СУБД Oracle до версии 10.2.0.3 или выше.

Обратитесь к документации по СУБД и установите обновление 5059238.

При подключении к репозиторию может возникнуть ошибка:

Ошибка загрузки библиотеки функций PostgreSQL. Возможно, драйвер не установлен.

Отсутствует установленный драйвер PostgreSQL или разрядность драйвера отличается от разрядности «Форсайт. Аналитическая платформа». Также ошибка может проявляться, если на компьютере пользователя отсутствует пакет Microsoft Visual C++ Runtime Library даже при корректно установленном драйвере СУБД.

Проверьте наличие установленного драйвера и его разрядность. Если необходимый драйвер установлен, то скачайте с сайта www.microsoft.com и установите файл vcredist необходимой разрядности.

Также рекомендуется в системную переменную PATH добавить путь к папке, в которую установлены драйвера для СУБД PostgreSQL.

При подключении к репозиторию на базе СУБД Oracle через BI-сервер может возникнуть ошибка:

Connection to database failed. Oracle 11.x/12.x is not found.

Веб-сервер IIS взаимодействует с клиентом Oracle под пользователями Network Service и IUSR, а не под тем пользователем, который обращается к веб-серверу. В доступе к клиенту Oracle может быть отказано, если у пользователей Network Service и IUSR нет соответствующих прав доступа.

Для решения проблемы необходимо предоставить права на доступ к папке с клиентом Oracle пользователям Network Service и IUSR.

Проблемы при проверке пользователя

При авторизации в «Форсайт. Аналитическая платформа» в окне регистрации появляется следующее сообщение об ошибке:

Неверное имя пользователя/пароль.

Поле Имя пользователя пустое/Не задан пароль.

При авторизации имя пользователя или пароль не были указаны или были указаны неверно.

Повторите ввод имени и пароля в окне регистрации.

При авторизации в «Форсайт. Аналитическая платформа» в окне регистрации появляется следующее сообщение:

Политикой безопасности предписано изменить пароль.

Если новый пароль не задать или нажать кнопку « Отмена » появляется сообщение с ошибкой:

Пользователь обязан сменить пароль.

Эта проблема может возникнуть, если заданный в редакторе политик максимальный срок действия пароля истек.

Необходимо сменить пароль. Для этого в окне с уведомлением о необходимости смены пароля введите пароль и нажмите кнопку « Да ».

Если новый пароль не удовлетворяет каким-либо требованиям парольной политики, то ниже полей ввода будет отображена соответствующая информация. Задайте пароль в соответствии с правилами. После смены пароля сеанс работы с веб-приложением будет завершен. Для входа в систему откройте новое окно обозревателя.

При авторизации в «Форсайт. Аналитическая платформа» появляется следующее сообщение:

исчерпан лимит ошибок при вводе пароля;

пользователь заблокирован администратором.

При возникновении данной ситуации следует обратиться к администратору.

При авторизации в «Форсайт. Аналитическая платформа» в окне регистрации появляется одно из следующих сообщений:

Вход в систему пользователю ‘ ‘ запрещен.
Доступ в систему с данной рабочей станции ‘ ‘ для данного пользователя запрещен.

Вход в систему пользователю ‘ ‘ запрещен.
Доступ в систему со станции с IP-адресом ‘ ‘ для пользователя ‘ ‘ запрещен.

Вход в систему пользователю ‘ ‘ запрещен.
Доступ в систему со станции с MAC-адресом ‘ ‘ запрещен.

Вход в систему пользователю ‘ ‘ запрещен.
Доступ в систему пользователю ‘ ‘ в данное время запрещен. Окончание периода запрета — ЧЧ:ММ:СС.

Пользователю отказано в доступе:

с данной рабочей станции;

со станции с определенным IP-адресом;

со станции с определенным MAC-адресом;

в этот день недели;

При возникновении данной ситуации следует обратиться к администратору.

При авторизации в «Форсайт. Аналитическая платформа» в окне регистрации появляется следующее сообщение:

Пользователь не имеет прав доступа к навигатору объектов.

Эта проблема может возникнуть, если у пользователя отсутствует привилегия « Вход в навигатор объектов ».

При возникновении данной ситуации следует обратиться к администратору.

При авторизации в веб-приложении появляется сообщение:

Доступ запрещен.
Обратитесь к администратору.

Регистрация в настольном приложении происходит без ошибок.

Эта проблема может возникнуть, если некорректно настроены параметры конфигурационного файла SQLNET.ORA. Файл расположен по пути Snetworkadmin, где S — путь до места установки Oracle.

Для корректной парольной авторизации в конфигурационном файле SQLNET.ORA замените SQLNET.AUTHENTICATION_SERVICES = (NTS) на SQLNET.AUTHENTICATION_SERVICES = (NONE).

После установки веб-приложения, при попытке пройти процедуру авторизации система выдает ошибку о ненайденных сервисах (ServiceNotFound).

Адрес, по которому будет производиться обращение к веб-сервисам, задается в базовых настройках веб-приложения в файле PP.xml. Адрес к сервисам – регистрозависимый, поэтому при несоблюдении регистра в написании адреса, возникает ошибка о ненайденных сервисах.

Путь, по которому расположены данные файлы, зависит от типа используемого веб-сервера:

где S — путь, по которому установлено веб-приложение.

Открыв на редактирование файл PP.xml , необходимо проверить корректность адреса к веб-сервисам с учетом регистра в строке « service url=»S1″/> ». Где S1 – путь, по которому располагается BI-сервер.

Пути, используемые по умолчанию, при использовании сервера IIS:

http:// / fp BI_App_v9.2×64/axis2/services/PP.SOM.Som

Где — наименование или IP-адрес сервера, на котором функционирует BI-сервер.

При использовании сервера Apache путь, по которому располагается BI-сервер, настраивается через файл конфигурации.

После сохранения изменений следует открыть веб-приложение и повторно пройти процедуру авторизации.

После установки веб-приложения, при попытке пройти процедуру авторизации система выдает ошибку о неверном идентификаторе репозитория.

Закройте окно браузера и запустите настольное приложение «Форсайт. Аналитическая платформа» с правами Администратора на сервере с установленными веб-сервисами.

В открывшемся окне приветствия нажмите на кнопку « Настройка ». Из списка доступных репозиториев выберите тот, который используется при попытке авторизации в веб-приложении, и нажмите на кнопку « Редактировать ».

В открывшемся окне установите флажок « Для всех пользователей на компьютере », чтобы репозиторий стал доступным для всех пользователей и веб-сервисы могли взаимодействовать с репозиторием «Форсайт. Аналитическая платформа».

После сохранения изменений следует перезапустить веб-сервер, на котором установлены веб-сервисы, открыть веб-приложение и повторно пройти процедуру авторизации.

Во время создания или обновления пользователя возникает ошибка «При раздаче прав на объекты СУБД произошла ошибка. Обновите пользователей».

Если при работе с СУБД PostgreSQL используется схема по умолчанию Public, то у всех пользователей репозитория будет возможность создания таблиц. Данное поведение связано со спецификой работы СУБД PostgreSQL. Это может привести к проблемам обновления пользователей и учёту прав доступа у пользователей, которые являются администраторами репозитория. Для избежания ошибки рекомендуется создавать все объекты только под пользователями, входящими в группу Администраторы.

Источник

Цитата
Сообщение от JekMvr
Посмотреть сообщение

подозреваю что не хватает каких либо длл

Еще раз, QPSQL зависит от библиотек самой Postgres, поскольку является надстройкой над libpq — это интерфейс PostgreSQL для программирования приложений на языке C. Библиотека libpq содержит набор функций, используя которые клиентские программы могут передавать запросы серверу PostgreSQL и принимать результаты этих запросов. Поэтому Qt-шная программа, работающая с Postgres, в списке зависимостей будет иметь libpq.dll

«Слоны» по умолчанию собираются с поддержкой SSL, многие «боевые» кластеры явно требуют использовать сертификат и SSL-подключения, отсюда зависимость от ssleay32.dll и libeay32.dll

intl.dll — это виндовый адаптант библиотеки libintl, тоже обязательная зависимость.

Если программа не находит какую-либо из зависимостей, то Qt-шный драйвер не может загрузиться, хотя по факту он есть, а ты наблюдаешь сообщение насчет «Driver not loaded»…

В крайнем случае, отлови недостающие с помощью любой бесплатной утилиты-детектора. Поисковик тебе в помощь.

Когда определишься со списком, их нужно скопировать из каталога установки «слонов» и положить рядом с твоим исполняемым файлом. Не в каталог проекта, а в каталог сборки, именно он упоминается в «выводе приложения » на первом скрине.

Альтернативный вариант — включить путь к каталогу установки PostgreSQL в переменную среды окружения PATH, чтобы система сама осуществляла поиск dll по указанному пути. Способ явно не лучший, хорош разве что для разработки, но рано или поздно ПО придется распространять, а на клиентской машине подобные вольности с модификацией среды окружения могут и не прокатить.

Рядом с exe должен быть и каталог pluginssqldrivers, в него скопируй Qt-шный плагин qsqlpsql.dll (это и есть драйвер, обеспечивающий взаимодействие Qt и Postgres, часть функциональности Qt реализована именно в виде подключаемых модулей — плагинов. Именно так, например, реализована все SQL-драйвера.). Если сборка дебажная, то и плагин тоже должен быть в отладочной версии, т.е. имя плагина содержит дополнительно суффикс d.

Еще один важный момент — обязательное совпадение разрядности, и Qt, и Postgres.

Дано
ОС Windows 7 или 10 x64
Qt5.5.1 (mingw) (x86) или новее
PostgreSQL 10 или новее

Задача
Заставить разработанное на Qt приложение запускаться на машине без установленного Qt и PostgreSQL и подключаться к СУБД PostgreSQL.

При вызове QSqlDatabase::addDatabse(«QPSQL») программа пишет:

QSqlDatabase: QPSQL driver not loaded

QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

либо вовсе:

QSqlDatabase: QPSQL driver not loaded

QSqlDatabase: available drivers:

Анализ

Как в общих чертах происходит работа с БД в Qt:
Функция QSqlDatabase::addDatabse живет в Qt5Sql.dll, и при вызове пытается динамически подгрузить qsqlpsql.dll, которая тянет за собой кучу других dll, часть из которых живет в составе PostgreSQL.

Разберемся, как решать эту и подобные проблемы, связанные с dll.

Принципиально существует два способа связывания dll и exe-файлов: явное и неявное. При загрузке SQL-драйверов Qt задействованы оба способа.
Сначала при запуске exe-файла происходит поиск и загрузка требуемых dll-библиотек, в т.ч. Qt5Sql.dll. Если какие-то библиотеки не найдены, то при запуске программы Windows сообщит об этом.

В процессе работы программы при вызове QSqlDatabase::addDatabse делается динамический поиск dll-файлов SQL-драйверов в определенных каталогах. Для драйвера QPSQL должна быть найдена библиотека qsqlpsql.dll, после чего выполняется попытка ее загрузки.

Для этого загружаются другие неявно связанные с ней dll-библиотеки вместе со своими зависимостями. Если всё дерево необходимых dll-библиотек найдено, то qsqlpsql.dll будет успешно загружена и Qt сможет использовать этот драйвер.

Но сложность в том, что при отсутствии какой-либо библиотеки Windows не выдаст красивого сообщения об этом и придется разбираться другими способами.

Разбираемся

Нам надо выяснить, какие dll-библиотеки требуются для работы программы и куда их нужно положить.

Для этого достаточно в общих чертах представлять, как Windows ищет dll, а именно, что сначала производится поиск в каталоге exe-файла, а в конце — по путям, указанным в переменной окружения PATH. PATH удобно использовать на машине разработчика, но этот вариант рассматривать не будем т.к. это не соответствует изначальной задаче. 

Также надо знать, в каких каталогах QSqlDatabase::addDatabse ищет драйверы SQL. Существуют способы указать Qt альтернативные пути, где искать плагины (в т.ч. SQL), но не будем заниматься и этим.

Исследуем

Используем Прекрасную программы DependencyWalker, которая показывает дерево зависимостей dll и exe-файлов.

Сначала открываем с помощью неё исполняемый файл программы и смотрим, какие dll-библиотеки должны быть доступны, ищем их в каталоге установки Qt и компилятора и кладем рядом с исполняемым файлом. Теперь программа должна запускаться и доходить до вызова QSqlDatabase::addDatabse.

Чтобы увидеть, где Qt ищет SQL-драйверы, добавляем переменную окружения QT_PLUGIN_PATH = 1 (например, в настройках параметров запуска приложения в QtCreator), запускаем программу и изучаем ее вывод. Кроме прочего должны быть примерно такие строки:

QFactoryLoader::QFactoryLoader() checking directory path «C:/Qt/Qt5.5.1/5.5/mingw492_32/plugins/sqldrivers»

QFactoryLoader::QFactoryLoader() checking directory path «C:/projects/build-foobar-Desktop-Release/release/sqldrivers»

Из них становится ясно, что по умолчанию Qt ищет SQL-драйверы в каталоге установки и в подкаталоге sqldrivers рядом с exe-файлом. Поэтому находим qsqlpsql.dll в каталоге установки Qt (примерно в C:Qt5.5.1mingw491_32binpluginssqldrivers) и копируем в подкаталог sqldrivers рядом с exe-файлом.
Если все сделано верно, то после вызова QSqlDatabase::addDatabse должно вывестись:

QSqlDatabase: available drivers: QPSQL QPSQL7

Если не удалось, то попробовать положить qsqlpsql.dll в plugins/sqldrivers.

Далее с помощью DependencyWalker исследуем зависимости qsqlpsql.dll.

Кроме зависимостей от библиотек Qt и компилятора, будет зависимость от libpq.dll.

Проще всего взять libpq.dll из каталога установки PostgreSQL (примерно в C:Program Files (x86)PostgreSQL10bin). Здесь есть две важнейшие особенности:

1) разрядность libpq.dll должна совпадать с разрядностью приложения. Под Windows стандартный SDK Qt5 с официального сайта 32-разрядный. т.е. необходима 32-разрядная версия libpq.dll, которую можно взять из x86-версии PostgreSQL. Это не влияет на разрядность сервера PostgreSQL, к которому будет подключаться приложение;

2) libpq.dll необходимо располагать рядом с exe-файлом, а не рядом с qsqlpsql.dll. Все остальные dll, от которых зависит libpq.dll, необходимо класть также рядом с exe-файлом приложения.

Теперь все тем же DependencyWalker исследуем зависимости libpq.dll в каталоге установки PostgreSQL.

В зависимости от версии PostgreSQL у libpq.dll могут быть разные dll-зависимости. Находим их все в каталоге установки PostgreSQL и копируем рядом с exe-файлом. Не забываем пройтись по всем зависимостям всех добавляемых dll. 

Сравниваем

Из установленного PostgreSQL 9.4 нужно позаимствовать следующие библиотеки:

libpq.dll

ssleay32.dll

libeay32.dll

libintl-8.dll

libiconv-2.dll

Для PostgreSQL 10 набор уже другой:

libpq.dll

libssl-1_1.dll

libcrypto-1_1.dll

libintl-8.dll

libiconv-2.dll

Более новые версии PostgreSQL выпускаются только в редакции x64, поэтому для получения x86-версии libpq.dll и других библиотек, возможно, придется собирать их из исходников самостоятельно (я не пробовал).

Что еще
возможно, Вам, как и мне, потребуется откуда-то добыть msvcr120.dll (или что-то вроде того в новых версиях Windows и PostgreSQL) и тоже бросить рядом с exe-файлом.

Итого
У меня получилась следующая структура каталога простой консольной программы, выполняющей загрузку драйвера БД:

qpsqltest.exe

sqldrivers/qsqlpsql.dll

Qt5Core.dll

Qt5Sql.dll

libpq.dll

libssl-1_1.dll

libcrypto-1_1.dll

libintl-8.dll

libiconv-2.dll

libwinpthread-1.dll

libstdc++-6.dll

libgcc_s_dw2-1.dll

msvcr120.dll

Архив c примером на гуглодиске

Я пытаюсь подключиться к базе данных PostgreSQL через Laravel, чтобы выполнить миграцию php-artisan, но не кажется, что она направлена, так как она считывает имя базы данных MySQL.

Вот команды из базы данных .php:

'connections' => array(

    'sqlite' => array(
        'driver'   => 'sqlite',
        'database' => __DIR__.'/../database/production.sqlite',
        'prefix'   => '',
    ),

    'mysql' => array(
        'driver'    => 'mysql',
        'host'      => 'localhost',
        'database'  => 'database',
        'username'  => 'root',
        'password'  => '',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),

    'pgsql' => array(
        'driver'   => 'pgsql',
        'host'     => 'localhost',
        'database' => 'postgres',
        'username' => 'postgres',
        'password' => 'root',
        'charset'  => 'utf8',
        'prefix'   => '',
        'schema'   => 'public',
    ),

    'sqlsrv' => array(
        'driver'   => 'sqlsrv',
        'host'     => 'localhost',
        'database' => 'database',
        'username' => 'root',
        'password' => '',
        'prefix'   => '',
    ),

),

Если я удалю пути MySQL, я получу:

[InvalidArgumentException]
Database [mysql] not configured.

EDIT:
При попытке выполнить миграцию php artisan я получаю «PDOException: не могу найти драйвер». Я использую WAMP, и я в Win8.1. Использование PostgreSQL в качестве базы данных.


EDIT:
Экспериментировали ряд альтернативных решений, но я все равно должен решить эту проблему.
Файл php.ini был отмечен в Apache, WAMP (из папки php) и PostgreSQL. extension_dir правильный, поскольку он → extension_dir = "c:/wamp/bin/php/php5.5.12/ext/"

extension=pdo_pgsql.dll и extension=pgsql.dll раскоментированы.

Сработал трюк PATH в «Системных переменных» и перезагрузился. Без шансов.

Спасибо за помощь до сих пор.

Это мои драйверы php_pdo_driver.h и php_pdo.h из C:Program Files (x86)PostgreSQLEnterpriseDB-ApachePHPphpSDKincludeextpdo

Информация из phpinfo:

Версия PHP 5.5.12

Компилятор MSVC11 (Visual С++ 2012) Настройка команды cscript/nologo configure.js «—enable-snapshot-build» «—disable-isapi» «—enable-debug-pack» «—without-mssql» «—without-pdo-mssql» «—without-pi3web» «—with-PDO-OCI = C:PHP-SDKоракулаx64instantclient10SDK, общий» «—with-OCI8 = C:PHP-SDKоракулаx64instantclient10SDK, общий» «—with-oci8-11g = C:PHP-SDKоракулаx64instantclient11SDK, общий» «—enable-object-out-dir =../obj/» «—enable-com-dotnet = shared» «—with-mcrypt = static» «—disable-static-analysis» «—with-pgo»

Содержание

  1. Ошибка загрузки библиотеки функций postgres возможно драйвер не установлен
  2. Microsoft Windows и PostgreSQL
  3. ODBC драйвера и их установка
  4. Настройка OBDC драйверов
  5. Финал
  6. Замечания по Delphi
  7. Настройка ODBC драйвера PostgreSQL
  8. Константин К.
  9. Поиск по этому блогу
  10. 30 мая 2017
  11. QPSQL driver not loaded: развертывание Qt5+PostgreSQL-приложения на Windows

Ошибка загрузки библиотеки функций postgres возможно драйвер не установлен

Microsoft Windows и PostgreSQL

PostgreSQL изначально писался для UNIX систем, но сегодня уже существует версия для Microsoft Windows NT. Таким образом даже пользователи Windows сегодня могут устанавливать сервер PostgreSQL себе на машину. Вы можете скачать версию PostgreSQL для Windows NT прямо с FTP сервера Postgresql ftp://ftp.postgresql.org .

Тем не менее, для Windows95/98 так и для Windows NT с давних пор существовали ODBC и JDBC драйвера, при использовании которых можно было вполне сносно работать с сервером PostgreSQL , работающим на каком-либо UNIX’е. Далее речь пойдет об ODBC драйверах.

ODBC драйвера и их установка

Первый и наверняка наиболее серьезный вопрос состоит в наверное уже крылатой фразе: «А где возьмешь?». Что сказать вам по этому поводу? Взять можно во многих местах. Я рекомендую опять-таки ftp://ftp.postgresql.org . Там всегда самая свежая версия. Скачать нужно, понятное дело, файл postdrv.exe, который я положил сюда, дабы не заставлять вас тратить время понапрасну.

Это самораспаковывающийся архив в установкой через InstallShield. То есть все, что вам нужно сделать для установки, это скачать данный файл в какой-нибудь временный каталог, а затем запустить его. Данный архив содержит еще и менеджер ODBC драйвера, который я рекомендую вам поставить (вам будет задан соответствующий вопрос во время установки). Однако, для того, чтобы начать работать, установки недостаточно. Вам еще необходимо произвести настройку ODBC через ODBC Administrator, который вызывается из окна Панель управления (Control Panel) под именем 32bit ODBC .

Настройка OBDC драйверов

Итак, запускаем 32bit ODBC . В результате получаем диалоговое окно, следующего вида:

У вас в окне по всей видимости будет пусто. У меня, как видите уже установлен ODBC драйвер для Interbase. Нажимаем кнопку Add. и снова получаем диалоговое окно вида:

Выбираем «PostgreSQL» и нажимаем кнопку Готово . В результате имеем еще одно окно вида:

Поля Database , Server , Username и Password в вашем случае будут пустыми и вам необходимо заполнить их самостоятельно. Тут никаких трудностей возникнуть не должно: Database — база данных, с которой вы будете работать, Server — машина, на которой работает PostgreSQL, Username и Password — соответственно имя пользователя и пароль с использованием которых будет осуществляться подключение к базе данных (это значит, что на сервере с PostgreSQL у вас должен быть заведен пользователь именно с таким именем и паролем).

Важное замечание :

    Я установил, что заполнение полей Username и Password не является необходимым. Более того, оно вредно, поскольку Windows хранит эти значения в реестре в PLAIN TEXT. Т.е. любой пионер, который научился пользоваться программой regedit может прочитать ваш пароль!

Параметр Port вам необходимо сменить только в том случае, если вы работаете с нестандартным портом (см. файл /etc/postgresql/postmaster.init на предмет изменения номера порта).

Как видно из рисунка, есть еще две кнопки Driver и DataSource .

При нажатии на кнопку Driver получаем окно вида:

В этом окне я рекомендую установить флажок Recognize Unique Indexes . Если вам нужно протоколирование транзакций, то установите CommitLog(C:postodbc.log . Понятно, что Read Only надо убрать. Еще я убираю Disable Generic Optimizer . Читайте про то, что обозначают настройки ниже.

При нажатии на кнопку DataSource получаем окно вида:

Сразу же рекомендую убрать флажек ReadOnly . А вот Protocol нужно установить в зависимости от версии PostgreSQL, с которой вы работаете. Я также включаю флажек Show Column , так как он не мешает. Читайте про то, что обозначают настройки ниже.

Важное замечание :

    Я установил, что включение флажка Row Versioning приводит к проблеме в Delphi , так как при формировании запросов, Delphi считает, что в любой таблице должно существовать поле xid , чего естественно в реальности нет. Т.е. этот флажок устанавливать не нужно.

Финал

Ну вот собственно и все. Теперь вы можете работать с сервером PostgreSQL , с помощью любой программы в Microsoft Windows, которая знает как общаться через ODBC драйвера.

Замечания по Delphi

Эти два случая из моего опыта работы с PostgreSQL из Delphi.

Первую фичу я обнаружил на методе AppendRecord . Оказывается, чтобы данный метод отработал успешно, нужно первым элементом списка ставить nil , иначе, при выполнении возникнет ошибка. Т.е. теперь AppendRecord будет выглядеть, например так: а не так, как делается, например, при работе с Interbase:

Вторая фича касается какой-то веселой ситуации, возникшей у меня один раз с сервером. По какой-то причине, тот отказывал в обслуживании клиентам. Похоже, это произошло потому, что в этот момент выполнялся какой-то процесс по обслуживанию базы данных на самом сервере.

Симптомом послужило то, что при обращении к PostgreSQL из программы на Deplhi, сама программа весилась намертво. При этом курсор принимал на экране характерную форму при выполнении SQL запроса. Однако этот запрос все продолжал выполняться и продолжал. Через 5 минут мне это надоело и я снял задачу принудительно.

Чем было вызвано зависание программы я даже не знаю. По идее должен был отработать тайм-аут по истечении которого, должна была появиться ошибка, но этого не случилось. Может виновата кривость BDE, может ODBC драйвера.

Вылечилось просто — на сервере был перезапущен PostgreSQL .

Настройка ODBC драйвера PostgreSQL

Диалоговое окно «Driver» в «Advanced Options»

DEFAULTS

    Нажмите эту кнопку для восстановления настроек по умолчанию.

Disable Genetic Optimizer

    Автоматически выключает оптимизатор во время соединения. Это удобнее, чем выставлять специальную настройку в параметрах соединения. Данная особенность была добавлена, когда мы заметили, что сервер имеет проблемы при оптимизации некоторых запросов.

KSQO (Keyset Query Optimization)

    Данная особенность помогает определенным запросам отрабатываться на сервере не заваливая его. Некоторые приложения, например MS Jet Database Engine используют «keyset» запросы вида: Запросы такого типа будут приводить к заваливанию сервера без KSQO.

CommitLog (C:psqlodbc.log)

    В данный файл происходит журналирование соединений с сервером. Его хорошо использовать для отладки.

Recognize Unique Indexes

    Этот флаг управляет результатом вызова SQLStatistics() для уникальных индексов. По умолчанию он не установлен. Это позволяет Access 95 и Access 97 спрашивать пользователя об индексах во время соединения.

Read Only (default)

    Новые источники данных будут наследовать состояние «Только для чтения».

Use Declare/Fetch

    Если флаг выставлен (по умолчанию это так), то драйвер автоматически использует создание курсора и fetch для управления операторами SELECT, оставляя 100 строк в кэше. В большинстве случаев это сильно помогает, когда вы заинтересованы только в чтении, а не в обновлении. Результаты не занимают много памяти для буферизации всего списка изменений. Если флаг сброшен, то курсор использоваться не будет, а драйвер будет выдавать все данные результата. Для очень больших таблиц, это очень плохо и может привести к тому, что будет использована вся память Windows. Однако, это может более лучшим образом управлять UPDATE, так как таблицы не остаются открытыми, как в случае использования курсора. Тем не менее, из-за более экономного расхода памяти, использование данного флага все равно дает лучшую производительность.

Parse Statement

    Если флаг выставлен, то драйвер будет анализировать операторы запроса SQL для определения колонок и таблиц, а также статистики о них, такой как точность, псевдонимы, нулевые записи и т.д. Все это можно получить через вызовы SQLDescribeCol, SQLColAttributes и SQLNumResultCols. Анализатор корректно определяет колонки, которые являются результатами выражений и функций, не взирая на сложность, но он не пытается определить типы данных или точность для этих колонок.

Важное замечание : Я установил, что включение флажка Parse Statement приводит к проблеме в Delphi . Я не знаю, кто виноват — Delphi или ODBC драйвера, но при выполнении запросов вида: «SELECT t1.field1, t2.field2, MyFunction(arg1) AS func1, MyFunction(arg2) AS func2, t3.field3 FROM. «, Delphi вернет вам в наборе данных (TDataSet и его потомки) только поля field1, field2 и func1. Поле func2 и другие поля, указанные после func2, в набор данных не попадут!

Unknown Sizes

    Этот флаг управляет значениями, которые будут возвращаться вызовами SQLDescribeCol и SQLColAttributes как точность для символьных типов данных (VARCHAR, TEXT и UNKNOWN), когда точность неизвестна.

    • Maximum — всегда возвращать максимально возможную точность
    • Dont Know — возвращать значение «Не знаю» и пусть приложение решает само
    • Longest — возвращать наибольшую длину строки, которая встретится в записях. Остерегайтесь устанавливать такую настройку, когда используете курсоры, потому что размер кэша может не позволить найти наибольшую строку в кэше.

Data Types Options

    Этот флаг оказывает влияние на отображение некоторых типов данных:

    • Text as LongVarChar — Тип PostgreSQL TEXT отображается как SQLLongVarchar, а не SQLVarchar.
    • Unknowns as LongVarChar — Неизвестные типы данных (массивы и т.д.) отображаются как SQLLongVarchar, а не SQLVarchar.
    • Bools as Char — Логический тип данных BOOL отображается как SQL_CHAR, а не как SQL_BIT.

Cache Size

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

Max Varchar

    Максимальная точность типов VARCHAR и BPCHAR(char[x]). По умолчанию она равна 254 символа, так как 255-й является завершающим нулем.

Max LongVarChar

    Максимальная точность типа LogVarChar. По умолчанию она равна 4094, так как 4095 символ является завершающим нулем. Вы можете даже задать размер (-4), который представляет собой константу SQL_NO_TOTAL.

SysTable Prefixes

    Дополнительные префиксы имен таблиц, по которым будут узнаваться системные таблицы. Драйвер уже будет считать имена, начинающиеся с «pg_» системными таблицами. Здесь же вы можете добавить свои. Отделяйте кажный префикс друг от друга точкой с запятой.

Connect Settings

    Эти команды будут посланы серверу при успешном соединении. Для отделения команд друг от друга используйте точку с запятой. Здесь теперь можно управлять любым запросом, даже если он возвращает результаты. Результаты однако будут отбрасываться.
Диалоговое окно «Data Source» в «Advanced Options»

Read Only

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

Connect Settings

    Драйвер посылает эти команды к серверу после успешного соединения. Он делает это ПОСЛЕ того как отправит Connect Settings, заданные в диалоговом окне Driver. Для отделения команд друг от друга используйте точку с запятой. Здесь теперь можно управлять любым запросом, даже если он возвращает результаты. Результаты однако будут отбрасываться.

Row Versioning

    Разрешает приложениям определять какие данные были изменены другими пользователями, пока вы пытались изменить строку. Это также ускоряет процесс обновления так как даже для одной колонки нет нужды перечислять остальные значения для обновления строки. Драйвер использует системное поле PostgreSQL «xmin» чтобы разрешить Row Versioning. Продукты Microsoft также могут использовать эту возможность. Смотрите FAQ для подробностей.

Show System Tables

    Драйвер будет считать системные таблицы обычными в SQLTables. Это хорошо если вы хотите работать с системными таблицами.

OID Options

  • Show Column — Включает поле OID в SQLColumns. Это хорошо для использования этого поля как уникального идентификатора при изменении записей если не существует нужного ключа ИЛИ если такой ключ содержит много частей.
  • Fake Index — Данная опция переключает уникальный индекс на OID. Это полезно, когда нет реального уникального индекса для OID и для приложений, которые не могут спросить про то, какие уникальные индексы существуют (например Access 2.0).

Protocol

    Выбирайте протокол по номеру версии вашего сервера PostgreSQL.

Источник

Константин К.

Очередной блог о решении возникающих проблем

Поиск по этому блогу

30 мая 2017

QPSQL driver not loaded: развертывание Qt5+PostgreSQL-приложения на Windows

Дано
ОС Windows 7 или 10 x64
Qt5.5.1 (mingw) (x86) или новее
PostgreSQL 10 или новее

Задача
Заставить разработанное на Qt приложение запускаться на машине без установленного Qt и PostgreSQL и подключаться к СУБД PostgreSQL.

QSqlDatabase: QPSQL driver not loaded

Разберемся, как решать эту и подобные проблемы, связанные с dll.

Принципиально существует два способа связывания dll и exe-файлов: явное и неявное. При загрузке SQL-драйверов Qt задействованы оба способа.
Сначала при запуске exe-файла происходит поиск и загрузка требуемых dll-библиотек, в т.ч. Qt5Sql.dll. Если какие-то библиотеки не найдены, то при запуске программы Windows сообщит об этом.

В процессе работы программы при вызове QSqlDatabase::addDatabse делается динамический поиск dll-файлов SQL-драйверов в определенных каталогах. Для драйвера QPSQL должна быть найдена библиотека qsqlpsql.dll, после чего выполняется попытка ее загрузки.

QFactoryLoader::QFactoryLoader() checking directory path «C:/Qt/Qt5.5.1/5.5/mingw492_32/plugins/sqldrivers»
.
QFactoryLoader::QFactoryLoader() checking directory path «C:/projects/build-foobar-Desktop-Release/release/sqldrivers»

Из них становится ясно, что по умолчанию Qt ищет SQL-драйверы в каталоге установки и в подкаталоге sqldrivers рядом с exe-файлом. Поэтому находим qsqlpsql.dll в каталоге установки Qt (примерно в C:Qt5.5.1mingw491_32binpluginssqldrivers) и копируем в подкаталог sqldrivers рядом с exe-файлом.
Если все сделано верно, то после вызова QSqlDatabase::addDatabse должно вывестись:

QSqlDatabase: available drivers: QPSQL QPSQL7

Более новые версии PostgreSQL выпускаются только в редакции x64, поэтому для получения x86-версии libpq.dll и других библиотек, возможно, придется собирать их из исходников самостоятельно (я не пробовал).

Что еще
возможно, Вам, как и мне, потребуется откуда-то добыть msvcr120.dll (или что-то вроде того в новых версиях Windows и PostgreSQL) и тоже бросить рядом с exe-файлом.

Итого
У меня получилась следующая структура каталога простой консольной программы, выполняющей загрузку драйвера БД:

Источник

Моя установка Postgresql работает, но когда я вызываю определенную функцию, я получаю неопределенный символ HeapTupleHeaderGetDatum, и plpgsql.so не загружается.

Это будет вопрос и ответ, причина этих вопросов и ответов в том, что текущие ответы здесь не появляются в результатах поиска Google, и я надеюсь, что это поможет другим

2 ответа

Лучший ответ

Перезапустите базу данных Postgresql,

Вы изменили версию postgresql и забыли перезапустить.

Это можно проверить, запустив

lbox:/>postgres --version 
postgres (PostgreSQL) 9.1.15

Vs.

select version();

Pg = # выбрать версию ();

                         version
PostgreSQL 9.1.12 on x86_64-suse-linux-gnu, compiled by ....


4

MichaelStoner
22 Апр 2015 в 10:11

Более вероятной причиной этого для многих будет то, что libpq, найденный динамическим компоновщиком, старше, чем та, с которой была скомпилирована клиентская программа, такая как psql. ldd psql (или любой другой проблемный клиент) обычно помогает определить, так ли это.

Кстати, горячая замена двоичных файлов — не лучшая идея. Лучше остановить сервер, заменить двоичные файлы и запустить сервер. Это верно для большинства вещей в Linux. Вы можете заменить двоичные файлы, но если они не полностью совместимы с двоичными файлами, это может вызвать kaboom . Даже в этом случае это безопасно, только если вы unlink() (например, rm) старые двоичные файлы, затем создадите новые. Если вы перезаписываете на месте, вы измените отображаемый в памяти двоичный поддерживающий исполняемый код, что даст захватывающие и красочные результаты.


1

Craig Ringer
22 Апр 2015 в 11:10

Понравилась статья? Поделить с друзьями:
  • Ошибка загрузки библиотеки ошибка подключения к бизнес объекту integrator
  • Ошибка ебс скания
  • Ошибка загрузки библиотеки компас
  • Ошибка ебс 04318 03 ман тга
  • Ошибка ебд на газели что означает