PostgreSQL (СУБД) и ZennoPoster - подключение через ODBC

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 859
Баллы
113
Понадобилось взаимодействие с базой данных, размещенной в постгре, полопатил форум и практически ничего не нашел. А так как взаимодействия с ODBC у меня ранее не было - я совсем не понимал что нужно делать. Ибо к MySQL я подключился в первый раз "в легкую", а вот тут возникли проблемы.

Не претендую на всеобъемлющую объективность и познания в этом деле, сам только-только разобрался, но пока есть "запал" - решил написать тут, чтобы эта инфа оказалась полезна и другим. Возможно, есть и чуть более простые способы, тогда велкам в комментарии ;-)

У меня установлен PostgreSQL v10.1 на Windows Server 2012R2 (64bit) и на этом же сервере стоит ZennoPoster 5.12.1.0. Возможно, для подключения к удаленной БД - инструкции могут отличаться. Поэтому тут рассмотрен вариант только для коннекта к локальной базе данных.


Проверка установленного ODBC драйвера

Запросы будем отправлять с помощью стандартного кубика Данные -> Базы данных:


Первым делом - нужно проверить, вдруг драйвер ODBC для PostgreSQL уже установлен, тогда можно будет сразу перейти к предпоследнему шагу (Настройка ODBC). Для проверки тыкаем:
  1. Конструктор подключений, появляется окно "Choose Data Source":

  2. Далее выбираем:
    Data Source: "<other>"
    Data Provider: .NET бла-бла ODBC
  3. Нажимаем "OK", появляется окно "Connection properties":

  4. Первым делом проверяем нет ли уже предустановленного соединения в строке: "Use user or system data source name", если есть что-то вроде "PostgreSQL" - пробуем его (жмакаем Test Connection), если нету - так и должно быть
  5. Далее ставим галочку на "Use connection string"
  6. Нажимаем "Build..." и видим окно "Выбор источника данных":

  7. Переходим во вкладку "Источники данных компьютера" (там тоже должно быть пусто и ничего, связанного с PostgreSQL не должно быть, иначе выбираем то, что есть и снова тестируем соединение)
  8. Нажимаем кнопку "Создать" (во вкладке "Источники данных компьютера"!), видим окно: "Создание нового источника данных":

  9. Выбираем "Пользовательский" или "Системный" (любой) - скорее всего вам не принципиально
  10. Нажимаем "Далее" и видим список источников/драйверов в системе:

    Суть в том, что у вас скорее всего НЕ будет драйвера PostgreSQL, это нормально, он почему-то не ставится вместе с PostgreSQL, а вот драйвер MySQL ODBC судя по всему - у меня поставился вместе с MySQL-Server.
  11. Если у вас есть драйвер - пробуйте вначале сделать подключение через него, пропускайте шаг установка драйвера. Если драйвера нет (как и у меня первоначально), то мы как раз идем к следующему разделу.

Установка драйвера ODBC

Дополнено: скорее всего драйвер ODBC можно поставить сразу вместе с установкой PostgreSQL или как минимум - запустить инсталлятор заново и выбрать установку драйверов ODBC (как это показано на первом скриншоте вот тут: https://docs.microsoft.com/ru-ru/sql/integration-services/import-export-data/connect-to-a-postgresql-data-source-sql-server-import-and-export-wizard ).​

Переходим на сайт: https://odbc.postgresql.org/ (там вся инфа по ODBC, будет полезно тем, кто захочет копнуть глубже) и тыкаем "Downloads are available in source and binary formats at the PostgreSQL downloads site". Там выбираем каталог msi, выбираем версию драйвера, согласно установленной версии PostgreSQL (лучше вначале всегда пробовать последний драйвер, если не подойдет - тогда тестировать по мажорной версии своей СУБД), обязательно выбираем правильную разрядность системы.
Для меня это был файл: psqlodbc_10_00_0000-x64.zip

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

Единственное, что скорее всего для старых версий ZP (5.9 и ниже) - нужно будет ставить вместе и 32 битную и 64 битную версию, т.к. судя по этому посту - ранее ZP был 64-битный, а PM 32-битный. У меня на 5.12 - всё запустилось и в PM, и в ZP только с одним 64-битным драйвером, поэтому не пришлось делать извращения как в указанной выше теме.

Настройка ODBC

Открываем меню пуск, вбиваем в поиск odbc и видим:


(если не видим - очень плохо, тут я даже не знаю что делать, всё это по-идее должно быть установлено, если нет - нужно ставить какие-то компоненты скорее всего)

Тут почему-то пуск показывает дубли одного и того же, то есть по факту "Источники данных" и "Настройка источников данных" - это одно и тоже. Запускается одна и та же программа :-)

Запускаем ту версию, разрядности которой у вас операционка. Вот на всякий случай пути к запускаемым программам:
  • 32-битная версия: %windir%\syswow64\odbcad32.exe
  • 64-битная версия: %windir%\system32\odbcad32.exe
После запуска вы увидите:


  1. Нажимаем там "Добавить", видим снова окно из раздела 1, пункта 11:

    Но с тем исключением, что в прошлый раз у нас не было драйверов для PostgrSQL, а сейчас есть.
  2. Выбираем драйвер PostgreSQL Unicode (почему его - не знаю, но скорее всего для работы с русским языком в utf-8 не подойдет драйвер ANSI, но я точно не знаю - это чисто интуитивный выбор)
  3. После выбора драйвера нажимаем "Готово" и появляется окно "PostgreSQL Unicode ODBC Driver (psqlODBC) Setup":

  4. Далее производим настройки подключения к серверу БД:
    Data Source: можно не менять, оставляем этот, это DSN название нашего подключения
    Database: имя базы данных
    Server: IP-адрес сервера, для локального подключения - 127.0.0.1
    User Name: пользователь, по дефолту обычно - postgres
    Description: можно ничего не писать
    SSL Mode: я выбрал disable
    Port: вводим порт, по умолчанию - 5432
    Password: пароль для подключения к БД
    Кнопки Options -> Data Source и Options -> Global можно не трогать, но может быть кому-то пригодится произвести там дополнительные настройки. Очень много инфы про то, что там есть описано вот тут в конце статьи: http://citforum.ru/database/postgres/windows.shtml
  5. После этого нажимаем кнопку "Test" - должно появиться сообщение "Connection successful"
  6. Нажимаем "Save"
  7. Всё, нажимаем "OK" в администраторе источника данных ODBC и возвращаемся к ProjectMaker, чтобы теперь подключиться из него к БД.

Подключение к PostgreSQL из ZennoPoster через ODBC

Самый последний шаг. Если вы дошли до этого раздела, то уже скорее всего прихерели сколько всего нужно сделать. Не пугайтесь, всё что было до этого - подготовительная работа. Для соединения с PgSQL в ProjectMaker вы будете делать только то, что написано в этом разделе. Поэтому я посчитал нужным чуть продублировать информацию с первого раздела о проверке драйвера.

  1. Выбираем наш кубик "Запрос к базе данных"/"Работа с базами данных":

  2. Переходим в конструктор подключений, выбираем Data Source:

    Data Source: <other>
    Data provider: .NET ... ODBC
  3. После подтверждения (нажатия на OK) мы попадаем в "Connection properties":


  4. Выбираем созданный нами Data Source (источник данных) - как показано на скриншоте
  5. Нажимаем "Test Connection", должно появиться сообщение "Test connection succeeded", если оно появилось - ура, аплодируем и открываем бутылку шампанского! Дальше всё пойдет как по лубриканту)
  6. Нажимаем "OK" и видим, что настройки кубика подключения к БД в PM сменились на что-то вроде:

    Если это произошло - значит всё окей, подключение к БД у вас "подцепилось". Но изначально (когда я только первый раз настраивал подключение) - я создавал "источник данных" прямо из самого ProjectMaker, а не через "Администратора источника данных", поэтому у меня строка подключения получилась очень длинной (но рабочей), вот такой:

    Не знаю почему так вышло, но на всякий случай продублирую её сюда, вдруг кому-то пригодится:
    Dsn=PostgreSQL35W;database=MyDB;server=127.0.0.1;port=5432;uid=postgres;pwd=12345;sslmode=disable;readonly=0;protocol=7.4;fakeoidindex=0;showoidcolumn=0;rowversioning=0;showsystemtables=0;fetch=100;unknownsizes=0;maxvarcharsize=255;maxlongvarcharsize=8190;debug=0;commlog=0;usedeclarefetch=0;textaslongvarchar=1;unknownsaslongvarchar=0;boolsaschar=1;parse=0;lfconversion=1;updatablecursors=1;trueisminus1=0;bi=0;byteaaslongvarbinary=1;useserversideprepare=1;lowercaseidentifier=0;xaopt=1
Далее нам остается только вставить свой запрос в кубик и настроить обработку результатов. Вот и всё :-)

Надеюсь, что мой (как оказалось) длинный мануал кому-то поможет. Пусть даже не сейчас, а через годик-два :-)

Используемые источники (полезные ссылки)


Post Scriptum (в виде дополнения, годные статьи почему PostgreSQL, а не MySQL)

 

Для запуска проектов требуется программа ZennoPoster.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

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

Последнее редактирование:

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 413
Благодарностей
3 329
Баллы
113

Vavildi

Client
Регистрация
29.02.2016
Сообщения
188
Благодарностей
103
Баллы
43
ты в курсе, что я тебе второй памятник уже начал делать ? потом лс чиркнешь, в каком городе на центральной площади тебе его поставить :-)
 
  • Спасибо
Реакции: Gavrosh и Lord_Alfred

Friker

Новичок
Регистрация
28.06.2018
Сообщения
4
Благодарностей
0
Баллы
1
как подключиться из zenopostera к mysql на локальном компьютере ?
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 859
Баллы
113
как подключиться из zenopostera к mysql на локальном компьютере ?
Легко!
Для этого всего лишь нужно использовать поиск по форуму, а не писать в первой попавшейся теме :-)
 

Kirillzenp

Client
Регистрация
27.02.2018
Сообщения
100
Благодарностей
1
Баллы
18

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 859
Баллы
113

DmitryAk

Client
Регистрация
14.12.2016
Сообщения
860
Благодарностей
819
Баллы
93

bigloafer

Client
Регистрация
23.07.2020
Сообщения
243
Благодарностей
76
Баллы
28
А у Вас случаем нет пакета Npgsql.dll который будет работать с ZP 7.7.0.0 ?
Просто я пытался компилировать свой dll из исходников и постоянно вылезают ошибки, я так понимаю есть несовместимость версий.
 

Вложения

Hartwell

Client
Регистрация
25.09.2014
Сообщения
194
Благодарностей
117
Баллы
43
А у Вас случаем нет пакета Npgsql.dll который будет работать с ZP 7.7.0.0 ?
Просто я пытался компилировать свой dll из исходников и постоянно вылезают ошибки, я так понимаю есть несовместимость версий.
Расписал-же все, сказал прочти еще раз...

либо более раню, почему? идем на сайт и читаем faq
 
  • Спасибо
Реакции: Gunjubasik

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 463
Благодарностей
1 291
Баллы
113

workfilms

Client
Регистрация
09.02.2022
Сообщения
31
Благодарностей
10
Баллы
8
Благодарю за труды твои, добрый человек! Здоровья тебе, денег и долгих лет жизни!
Оргазм в виде test connection succeeded просто потрясающий )
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)