Настроить odbc драйвер postgresql
This page describes how to build the PostgreSQL ODBC Driver on Windows. There are three methods to build: from command line using nmake makefiles, from Powershell using MSBuild files, and from Visual Studio IDE.
- Microsoft Windows SDK 7.0 (or later), or Microsoft Visual Studio C++ 2005 Edition (or later). Other compilers may work but have not been tested. Download the latest version from Microsoft's download page
- PostgreSQL Client library (libpq.dll) and headers. Download the latest version from the PostgreSQL Binaries Download page.
- WiX Toolset. Required for building the installer. Download the latest version from the WiX Toolset website
Building with Powershell and MSBuild
Building with nmake.exe
Use NMAKE.exe to build the driver for the currently active target:
C:\psqlodbc\> nmake /f win64.mak
Despite the name, win64.mak is used to build both 32-bit and 64-bit binaries. With the Microsoft Windows SDK Command Prompt, you can switch between 32-bit and 64-bit target architectures with setenv /x86 and setenv /x64 commands. If using a Visual Studio Command Prompt you can start the x86 or x64 versions from the Start menu, or run vcvarsall.bat with appropriate options to switch architectures.
To build the .msi installer file:
C:\psqlodbc\> nmake /f win64.mak installer
The resulting installer file goes to installer/x64 or installer/x86 directory.
To build both 32-bit and 64-bit versions in one command:
C:\psqlodbc\> nmake /f win64.mak world
The following build options may be used, either on the command line, or by creating a file called "windows-local.mak".
Variable | Values |
CFG | Release(default), or Debug |
PG_INC | $(PROGRAMFILES)\PostgreSQL\9.3\include |
PG_LIB | $(PROGRAMFILES)\PostgreSQL\9.3\lib |
SSL_INC | C:\OpenSSL-Win32\include |
SSL_LIB | C:\OpenSSL-Win32\lib |
ANSI_VERSION | no (If set to "yes", output dll name to psqlodbc30a.dll) |
MSDTC | yes |
- UNICODE is the default (psqlodbc35w.dll), unless ANSI_VERSION is selected (psqlodbc30a.dll)
- libpq.dll is mandatory.
- If MSDTC == Yes, "pgxalib.dll" is created.
- If MSDTC is enabled, ANSI_VERSION also creates "pgenlista.dll", or UNICODE creates "pgenlist.dll".
IDE Method
A Microsoft Visual Studio project file (and workspace) is included in the source tree.
psqlodbc.dsp can be used with Microsoft Visual C++ 6.0.
Preparation before the build:
If you want to change the installation arrangement, it is necessary to edit the project settings.
This topic shows you how to connect to a PostgreSQL data source from the Choose a Data Source or Choose a Destination page of the SQL Server Import and Export Wizard.
The detailed requirements and prerequisites for connecting to a PostgreSQL database are beyond the scope of this Microsoft article. This article assumes that you already have PostgreSQL client software installed and that you can already connect successfully to the target PostgreSQL database. For more info, consult your PostgreSQL database administrator or the PostgreSQL documentation.
Get the PostgreSQL ODBC driver
Install the ODBC driver with Stack Builder
Run Stack Builder to add the PostgreSQL ODBC driver (psqlODBC) to your installation of PostgreSQL.
Or, download the latest ODBC driver
Connect to PostgreSQL with the PostgreSQL ODBC driver (psqlODBC)
Options to specify (PostgreSQL ODBC driver)
The connection options for this data provider and ODBC driver are the same whether PostgreSQL is your source or your destination. That is, the options you see are the same on both the Choose a Data Source and the Choose a Destination pages of the wizard.
To connect to PostgreSQL with the PostgreSQL ODBC driver, assemble a connection string that includes the following settings and their values. The format of a complete connection string immediately follows the list of settings.
Get help assembling a connection string that's just right. Or, instead of providing a connection string, provide an existing DSN (data source name) or create a new one. For more info about these options, see Connect to an ODBC Data Source.
Driver
The name of the ODBC driver - either PostgreSQL ODBC Driver(UNICODE) or PostgreSQL ODBC Driver(ANSI).
Server
The name of the PostgreSQL server.
Port
The port to use to connect to the PostgreSQL server.
Database
The name of the PostgreSQL database.
Uid and Pwd
The Uid (user id) and Pwd (password) to connect.
Connection string format
Here's the format of a typical connection string.
Enter the connection string
Enter the connection string in the ConnectionString field, or enter the DSN name in the Dsn field, on the Choose a Data Source or Choose a Destination page. After you enter the connection string, the wizard parses the string and displays the individual properties and their values in the list.
The following example uses this connection string.
Here's the screen that you see after entering the connection string.
Other data providers and more info
For info about how to connect to PostgreSQL with a data provider that's not listed here, see PostgreSQL connection strings. This third-party site also contains more info about the data providers and the connection parameters described on this page.
В этом разделе показано, как подключаться к источникам данных PostgreSQL со страницы Выбор источника данных или Выбор назначения в мастере импорта и экспорта SQL Server.
Подробные требования и необходимые условия для подключения к базе данных PostgreSQL выходят за рамки этой статьи Майкрософт. В ней предполагается, что у вас уже установлено клиентское программное обеспечение PostgreSQL и вы можете успешно подключиться к целевой базе данных PostgreSQL. Для получения дополнительных сведений обратитесь к администратору базы данных PostgreSQL или к документации по PostgreSQL.
Получение драйвера ODBC для PostgreSQL
Установка драйвера ODBC с помощью построителя стека
Запустите построитель стека, чтобы добавить драйвер ODBC для PostgreSQL (psqlODBC) в вашу установку PostgreSQL.
Скачивание последней версии драйвера ODBC
Подключение к PostgreSQL с помощью драйвера ODBC для PostgreSQL (psqlODBC)
Указываемые параметры (драйвер ODBC для PostgreSQL)
Параметры подключения для этого поставщика данных и драйвера ODBC одинаковы независимо от того, является ли PostgreSQL источником или назначением. Таким образом, на страницах Выбор источника данных и Выбор назначения мастера отображаются одинаковые параметры.
Чтобы подключиться к PostgreSQL с помощью драйвера ODBC для PostgreSQL, соберите строку подключения, используя указанные ниже параметры и их значения. Полный формат строки подключения приведен после списка параметров.
Вы можете получить помощь в построении строки подключения. Кроме того, вместо указания строки подключения вы можете предоставить существующее имя DSN (имя источника данных) или создать новое. Дополнительные сведения об этих возможностях см. в разделе Подключение к источнику данных ODBC.
Драйвер
Имя драйвера ODBC — PostgreSQL ODBC Driver(UNICODE) или PostgreSQL ODBC Driver(ANSI).
Server
Имя сервера PostgreSQL.
порт.
Порт, используемый для подключения к серверу PostgreSQL.
База данных
Имя базы данных PostgreSQL.
Uid и Pwd
Uid (идентификатор пользователя) и Pwd (пароль) для подключения.
Формат строки подключения
Ниже приведен формат типичной строки подключения.
Ввод строки подключения
Введите строку подключения в поле ConnectionString либо введите имя DSN в поле Dsn на странице Выбор источника данных или Выбор назначения. После того как вы введете строку подключения, мастер проанализирует ее и отобразит отдельные свойства и их значения в списке.
В приведенном ниже примере используется следующая строка подключения:
Ниже показан экран, который появляется после ввода строки подключения.
Другие поставщики данных и дополнительные сведения
Сведения о подключении к PostgreSQL с помощью поставщика данных, не представленного в этом списке, см. в разделе Строки подключения PostgreSQL. Этот сторонний сайт также содержит дополнительные сведения о поставщиках данных и параметрах подключения, описанных на этой странице.
В этом разделе показано, как подключаться к источникам данных ODBC со страницы Выбор источника данных или Выбор назначения в мастере импорта и экспорта SQL Server.
Нужный драйвер ODBC может потребоваться скачать с веб-сайта корпорации Майкрософт или другого разработчика.
Кроме того, вам может потребоваться найти сведений о подключении, которые нужно будет предоставить. На этом стороннем сайте со справочником по строкам подключения представлены примеры строк подключения и дополнительные сведения о поставщиках данных и используемых ими данных подключений.
Проверка на наличие установленного драйвера
Найдите или выберите приложение Источники данных ODBC (64-разрядное) в меню "Пуск" или панели управления. Если у вас есть только 32-разрядный драйвер или вы знаете, что вам нужен именно 32-разрядный драйвер, найдите вместо этого приложение ODBC Data Sources (32-bit) (Источники данных ODBC (32-разрядное)).
Запустите приложение. Открывается окно Администратор источников данных ODBC.
На вкладке Драйверы приведен список драйверов ODBC, установленных на вашем компьютере. (Имена некоторых драйверов могут быть указаны на нескольких языках.)
Ниже приведен пример списка установленных 64-разрядных драйверов.
Если вы знаете, что ваш драйвер установлен, но не видите его в 64-разрядном приложении, перейдите в 32-разрядное приложение. Все это также указывает, какую версию мастера импорта и экспорта SQL Server вам нужно запустить — 64- или 32-разрядную.
Чтобы использовать 64-разрядную версию мастера экспорта и импорта SQL Server, нужно установить SQL Server. SQL Server Data Tools (SSDT) и SQL Server Management Studio (SSMS) являются 32-разрядными приложениями и устанавливают только 32-разрядные файлы, включая 32-разрядную версию мастера.
Шаг 1. Выбор источника данных
Шаг 2. Указание сведений о подключении
Следующим шагом является предоставление сведений о подключении для драйвера ODBC и источника данных. Имеются две возможности.
Укажите DSN (имя источника данных), который уже существует или был создан вами в приложении Администратор источников данных ODBC. Имя DSN представляет собой коллекцию параметров, необходимых для подключения к источнику данных ODBC.
Если вы уже знаете имя DSN или сумеете его создать, можете пропустить оставшуюся часть этой страницы. Введите имя DSN в поле Dsn на странице Выбор источника данных или Выбор назначения, а затем перейдите к следующему шагу в мастере.
Укажите строку подключения, которую можно узнать в сети или создать и протестировать на компьютере с помощью приложения Администратор источников данных ODBC.
Если у вас уже есть строка подключения или вы знаете, как ее создать, можете пропустить оставшуюся часть этой страницы. Введите строку подключения в поле ConnectionString на странице Выбор источника данных или Выбор назначения, а затем перейдите к следующему шагу в мастере.
Если вы указали строку подключения, на странице Выбор источника данных или Выбор назначения отображаются все сведения о подключении, которые мастер будет использовать для подключения к источнику данных, например имя сервера и базы данных, а также метод проверки подлинности. Если вы указали имя DSN, эта информация не отображается.
Вариант 1. Указание имени DSN
Если вы хотите предоставить сведения о подключении с помощью имени DSN, используйте приложение Администратор источников данных ODBC для поиска существующего или создания нового имени DSN.
Найдите или выберите приложение Источники данных ODBC (64-разрядное) в меню "Пуск" или панели управления. Если у вас есть только 32-разрядный драйвер или вам нужен именно 32-разрядный драйвер, найдите вместо этого приложение ODBC Data Sources (32-bit) (Источники данных ODBC (32-разрядное)).
Запустите приложение. Открывается окно Администратор источников данных ODBC. Вот как это приложение выглядит.
Если вам нужно использовать существующее имя DSN для источника данных, вы можете использовать любое имя DSN, отображающееся на вкладке DSN пользователя, System DSN (Системный DSN) или DSN файла. Просмотрите имя, затем вернитесь к мастеру и введите его в поле Имя DSN на странице Выбор источника данных или Выбор назначения. Пропустите оставшуюся часть этой страницы и перейдите к следующему шагу в мастере.
Если вы хотите создать имя DSN, решите, должно ли оно быть видимым только вам ("DSN пользователя"), видимым всем пользователям компьютера, включая службы Windows ("DSN системы") или сохраненным в файле ("Файловый DSN"). Этот пример создает имя DSN системы.
На вкладке DSN системы нажмите кнопку Добавить.
В диалоговом окне Создать новый источник данных выберите драйвер для источника данных, а затем нажмите кнопку Готово.
Драйвер теперь отображает один или несколько экранов, где можно ввести сведения, необходимые для подключения к источнику данных. (Например, для драйвера SQL Server предусмотрено четыре страницы настраиваемых параметров.) По завершении работы в списке появится новый системный DSN.
Вернитесь в мастер и введите имя DSN в поле Dsn на странице Выбор источника данных или Выбор назначения. Перейдите к следующему шагу в мастере.
Вариант 2. Указание строки подключения
Если вы хотите предоставить сведения о подключении с помощью строки подключения, дочитайте оставшуюся часть раздела до конца.
В этом примере будет использоваться следующая строка подключения, которая подключается к Microsoft SQL Server. В качестве примера базы данных используется WideWorldImporters, и мы подключаемся к SQL Server на локальном компьютере.
Введите строку подключения в поле ConnectionString на странице Выбор источника данных или Выбор назначения. После того как вы введете строку подключения, мастер проанализирует ее и отобразит отдельные свойства и их значения в списке.
Ниже показан экран, который появляется после ввода строки подключения.
Параметры подключения для этого драйвера ODBC одинаковы независимо от того, настраиваете ли вы источник или назначение. Таким образом, на страницах Выбор источника данных и Выбор назначения мастера отображаются одинаковые параметры.
Получение строки подключения в сети
Чтобы найти строки подключения для своего драйвера ODBC в сети, см. раздел Справочник по строкам подключения. На этом стороннем сайте представлены примеры строк подключения и дополнительные сведения о поставщиках данных и используемых ими данных подключений.
Получение строки подключения с помощью приложения
Чтобы собрать и проверить строку подключения для своего драйвера ODBC на локальном компьютере, вы можете использовать приложение Администратор источников данных ODBC на панели управления. Создайте файловое имя DSN для подключения, а затем скопируйте параметры из этого имени, чтобы использовать их при сборке строки подключения. Это требует выполнения нескольких действий, но позволяет проверить работоспособность строки подключения.
Найдите или выберите приложение Источники данных ODBC (64-разрядное) в меню "Пуск" или панели управления. Если у вас есть только 32-разрядный драйвер или вам нужен именно 32-разрядный драйвер, найдите вместо этого приложение ODBC Data Sources (32-bit) (Источники данных ODBC (32-разрядное)).
Запустите приложение. Открывается окно Администратор источников данных ODBC.
В рамках этого примера создайте файловое, а не пользовательское или системное имя DSN, так как файловое имя DSN сохраняет пары имя-значение в определенном формате, который подходит для строки подключения.
В диалоговом окне Создать новый источник данных выберите драйвер в списке и нажмите кнопку Далее. В этом примере будет создано имя DSN, которое содержит аргументы строки подключения, необходимые для подключения к Microsoft SQL Server.
Выберите расположение и введите имя файла для нового файлового имени DSN, а затем нажмите кнопку Далее. Запомните, куда сохраняете файл, чтобы позднее вам было легче его найти.
Просмотрите сводные данные и нажмите кнопку Готово.
После нажатия кнопки Готово выбранный вами драйвер отображает один или несколько собственных экранов, чтобы собрать необходимые для подключения сведения. Обычно эти сведения включают в себя сервер, учетные данные и базу данных для источников на основе серверов и файл, формат и версию для источников, на основе файлов.
После настройки источника данных нажмите кнопку Готово. После этого обычно отображаются сводные сведения о выбранных параметрах и предоставляется возможность протестировать их.
Проверив источник данных и закрыв диалоговые окна, найдите файловое имя DSN там, куда вы его сохранили. Если вы не изменяли расширение файла, по умолчанию используется расширение DSN.
Откройте этот файл в блокноте или другом текстовом редакторе. Ниже приведено содержимое нашего примера SQL Server.
Скопируйте и вставьте необходимые значения в строку подключения, в которой пары имя-значение разделяются точкой с запятой.
Собрав все необходимые значения из образца файлового имени DSN, вы получите следующую строку подключения.
Если вы используете приложение "Администратор источников данных ODBC", переносить все эти параметры в имени DSN для создания работающей строки подключения обычно не требуется.
- Всегда нужно указывать драйвер ODBC.
- Для источника данных на основе сервера, такого как SQL Server, обычно требуются сведения о сервере, базе данных и сведения для входа. В данном примере значения TrustServerCertificate, WSID и APP вам не нужны.
- Для источника данных на основе файла требуется по меньшей мере имя файла и расположение.
Введите строку подключения в поле ConnectionString на странице Выбор источника данных или Выбор назначения мастера. Мастер анализирует строку, после чего можно двигаться дальше.
- DEFAULTS: Press to this button restore the normal defaults for the settings described below.
- Recognize Unique Indexes: Check this option.
- Use Declare/Fetch: If true, the driver automatically uses declare cursor/fetch to handle SELECT statements and keeps 100 rows in a cache. This is mostly a great advantage, especially if you are only interested in reading and not updating. It results in the driver not sucking down lots of memory to buffer the entire result set. If set to false, cursors will not be used and the driver will retrieve the entire result set. For very large tables, this is very inefficient and may use up all the Windows memory/resources. However, it may handle updates better since the tables are not kept open, as they are when using cursors. This was the style of the old podbc32 driver. However, the behavior of the memory allocation is much improved so even when not using cursors, performance should at least be better than the old podbc32.
- CommLog (C:\psqlodbc_xxxx.log): Log communications to/from the backend to that file. This is good for debugging problems.
- Parse Statements: Tell the driver how to gather the information about result columns of queries, if the application requests that information before executing the query. See also ServerSide Prepare options.
The driver checks this option first. If disabled then it checks the Server Side Prepare option.
If this option is enabled, the driver will parse an SQL query statement to identify the columns and tables and gather statistics about them such as precision, nullability, aliases, etc. It then reports this information in SQLDescribeCol, SQLColAttributes, and SQLNumResultCols.
- Maximum: Always return the maximum precision of the data type.
- Dont Know: Return "Don't Know" value and let application decide.
- Longest: Return the longest string length of the column of any row. Beware of this setting when using cursors because the cache size may not be a good representation of the longest column in the cache.
MS Access: Seems to handle Maximum setting ok, as well as all the others.
Borland: If sizes are large and lots of columns, Borland may crash badly (it doesn't seem to handle memory allocation well) if using Maximum size.
- Text as LongVarChar: PostgreSQL TEXT type is mapped to SQLLongVarchar, otherwise SQLVarchar.
- Unknowns as LongVarChar: Unknown types (arrays, etc) are mapped to SQLLongVarChar, otherwise SQLVarchar
- Bools as Char: Bools are mapped to SQL_CHAR, otherwise to SQL_BIT.
Advanced Options 2/3 Dialog Box
This option controls two aspects of the connection, the libpq protocol version and the level of rollback on errors. For historical reasons the libpq protocol version is encoded as a PostgreSQL version number. The libpq protocol version used is the highest version, the given PostgreSQL server version supports. The level of rollback on errors is optional and is a dash separated suffix number as described below.
- 7.4+: Use the 7.4(V3) protocol. This is currently the only supported libpq protocol and this part of the parameter is currently ignored.
PROTOCOL=7.4-(0|1|2)
default value is Statement (it is Transaction for servers before 8.0).
- Show Column: Includes the OID in SQLColumns. This is good for using as a unique identifier to update records if no good key exists OR if the key has many parts, which blows up the backend.
- Fake Index: This option fakes a unique index on OID. This is useful when there is not a real unique index on OID and for apps which can't ask what the unique identifier should be (i.e, Access 2.0).
- disable: Check when client-side TCP keepalives are not used.
- idle time: The number of seconds of inactivity after which TCP should send a keepalive message to the server.
- interval: The number of seconds after which a TCP keepalive message that is not acknowledged by the server should be retransmitted.
Advanced Options 3/3 Dialog Box
- Allow connections urecoverable by MSDTC?: How to test distributed transactions.
- yes: MSDTC is needless unless applications crash. So don't check the connectivity from MSDTC.
- rejects sslmode verify-[ca|full]: reject ssl connections with verify-ca or verify-full mode because in those cases msdtc could hardly establish the connection.
- no: First confirm the connectivity from MSDTC.
Global settings Dialog Box
This dialog allows you to specify pre-connection/default logging options
- CommLog (C:\psqlodbc_xxxx.log - Communications log): Log communications to/from the backend to that file. This is good for debugging problems.
- MyLog (C:\mylog_xxxx.log - Detailed debug output): Log debug messages to that file. This is good for debugging problems with the driver.
- MSDTCLog (C:\pgdtclog\mylog_xxxx.log - MSDTC debug output): Log debug messages to that file. This is good for debugging problems with the MSDTC.
- Specification of the holder for log outputs: Adjustment of write permission.
Manage DSN Dialog Box
This dialog allows you to select which PostgreSQL ODBC driver to use for this connection. Note that this may not work with third party drivers.
How to specify as a connection option
There is a method of specifying a connection option in a keyword strings.
Читайте также:
- yes: MSDTC is needless unless applications crash. So don't check the connectivity from MSDTC.