Подключение к удаленной базе данных PostgreSql с помощью Powershell - PullRequest
5 голосов
/ 09 февраля 2012

Я пытаюсь подключиться к удаленной базе данных PostgreSql с помощью powershell.Я впервые использую PowerShell, поэтому прошу прощения, если это нубский вопрос.Это мой код:

$DBConnectionString = "Driver={PostgreSQL UNICODE}:Server=$MyServer;Port=$MyPort;Database=$MyDB;Uid=$MyUid;Pwd=$MyPass;"
$DBConn = New-Object System.Data.Odbc.OdbcConnection;
$DBConn.ConnectionString = $DBConnectionString;
$DBConn.Open();
$DBCmd = $DBConn.CreateCommand();
$DBCmd.CommandText = "SELECT * FROM mytable;";
$DBCmd.ExecuteReader();
$DBConn.Close();

Когда я запускаю это, я получаю сообщение «Exception Calling» Open »с аргументом« 0 »: ERROR [IM002] [Microsoft] [ODBC Driver Manager] Имя источника данныхне найден и драйвер по умолчанию не указан ".Я скачал и установил драйвер pgsqlodbc, но я все еще получаю эту ошибку.У кого-нибудь есть идеи как можно это исправить?Я искал в Интернете, и я действительно нигде не получаю.

Спасибо.

Ответы [ 4 ]

2 голосов
/ 06 февраля 2017

Консультирование: https://odbc.postgresql.org/
Загрузка: https://www.postgresql.org/ftp/odbc/versions/msi/

Источники данных (ODBC) в Windows: Пуск → Поиск → odbc → Пользовательский DSN → Добавить / настроить

Screenshot ODBC Driver Setup

Пример:

$MyServer = "<ip>"
$MyPort  = "5432"
$MyDB = "<database>"
$MyUid = "<user>"
$MyPass = "<pass>"

$DBConnectionString = "Driver={PostgreSQL UNICODE(x64)};Server=$MyServer;Port=$MyPort;Database=$MyDB;Uid=$MyUid;Pwd=$MyPass;"
$DBConn = New-Object System.Data.Odbc.OdbcConnection;
$DBConn.ConnectionString = $DBConnectionString;
$DBConn.Open();
$DBCmd = $DBConn.CreateCommand();
$DBCmd.CommandText = "SELECT * FROM tb_module;";
$DBCmd.ExecuteReader();
$DBConn.Close();
1 голос
/ 14 февраля 2012

Я обнаружил проблему, я думал, что драйвер Postgresql ODBC был установлен, но это не так.Я наконец заставил его работать после нахождения этого сайта: http://code.google.com/p/visionmap/wiki/psqlODBC Затем я следовал инструкциям выше.это работает.

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

1 голос
/ 10 февраля 2012

Проверьте, существует ли DSN в источнике данных ODBC. Если нет, вам нужно создать один из них в «Панель управления», «Админ. Инструменты »,« Источники данных (ODBC) ». Затем выберите «Добавить пользователя DSN» - Выберите драйвер PostgreSQL и введите данные своего сервера и базы данных. Проверьте соединение, чтобы проверить все в порядке!

0 голосов
/ 12 октября 2016

У вас фактически есть опечатка в строке подключения после объявления драйвера. Вместо точки с запятой стоит двойная двоеточие:)

Неправильно: {PostgreSQL UNICODE}: Сервер

Правильно: {PostgreSQL UNICODE}; Сервер

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...