part i what's new 1 part ii general information 2 · pdf filepart i what's new 1...
TRANSCRIPT
IContents
© 2018 Devart
Table of ContentsPart I What's New 1
Part II General Information 3
................................................................................................................................... 31 Overview
................................................................................................................................... 42 Features
................................................................................................................................... 63 Compatibility
................................................................................................................................... 74 Requirements
................................................................................................................................... 85 Licensing
................................................................................................................................... 116 Getting Support
Part III Using ODBC Driver 12
................................................................................................................................... 131 Installation
.......................................................................................................................................................... 13Windows
.......................................................................................................................................................... 17macOS
.......................................................................................................................................................... 27Linux
................................................................................................................................... 332 Connecting to PostgreSQL
................................................................................................................................... 363 Connection Options
................................................................................................................................... 384 Secure Connections
.......................................................................................................................................................... 38SSL Connection Description
.......................................................................................................................................................... 41SSH Connection Description
.......................................................................................................................................................... 44HTTP Tunneling Description
................................................................................................................................... 475 Product Activation
.......................................................................................................................................................... 47Obtaining Activation Key
.......................................................................................................................................................... 48Activation on Windows
.......................................................................................................................................................... 52Activation on macOS
.......................................................................................................................................................... 52Activation on Linux
.......................................................................................................................................................... 53Where to See the License Information?
................................................................................................................................... 556 Supported Data Types
................................................................................................................................... 557 Supported ODBC API Functions
ODBC Driver for PostgreSQL1
© 2018 Devart
1 What's New
26-Feb-18 New features in ODBC Driver for PostgreSQL2.3
Performance of batch operations is significantly improved
The SSHStoragePath connection parameter is added
Support for the use of "?", "?|" and "?&" JSON operators in SQL statements by escaping the
question mark character ("\?", "\?|" and "\?&" respectively) is added
23-Oct-2017 New features in ODBC Driver forPostgreSQL 2.2
PostgreSQL 10 is supported
Azure Database for PostgreSQL is supported
Compatibility with SAS JMP is improved
Compatibility with MS Power Query is improved
OUTER JOIN macros in SQL queries are supported
DateTime macros in SQL queries are supported
Scalar function macros in SQL queries are supported
26-Oct-16 New features in ODBC Driver for PostgreSQL2.1
Compatibility with MS Visual Studio
Compatibility with MS FoxPro is improved
Compatibility with MapInfo is improved
Compatibility with Libre Office is improved
Compatibility with Qlik is improved
Compatibility with Delphi & C++Builder is improved
MS Access linked tables support is improved
The SELECT ... FOR UPDATE statement is supported
05-Apr-16 New features in ODBC Driver for PostgreSQL2.0
Linux is supported
macOS is supported
What's New 2
© 2018 Devart
Support for stored procedures and functions is improved
Backward compatibility of SQLExecDirect with ODBC 2.x is improved
Compatibility with MS Excel is improved
Compatibility with ODBC 2.x is improved
Bug with Trial expiration in Microsoft SQL Server Management Studio is fixed
Support for server versions 7.3-8.3 is improved
Bug with fetching big data amount is fixed
06-Jan-16 New features in ODBC Driver for PostgreSQL1.3
Connection via SSL protocol is supported
Connection via SSH protocol is supported
Connection via HTTP tunnel is supported
Compatibility with Power BI Desktop is improved
Compatibility with Microsoft Visual FoxPro is improved
06-Nov-15 New features in ODBC Driver for PostgreSQL1.2
Compatibility with Microsoft Visual Studio is improved
Compatibility with Microsoft Office is improved
Compatibility with Microsoft SQL Server Management Studio is improved
Compatibility with Crystal Reports is improved
Compatibility with ClikView is improved
16-Jul-15 New features in ODBC Driver for PostgreSQL1.1
Performance is improved
20-May-15 New features in ODBC Driver for PostgreSQL1.0
First release of ODBC Driver for PostgreSQL
Windows 32-bit is supported
Windows 64-bit is supported
ODBC Driver for PostgreSQL3
© 2018 Devart
2 General Information
1. Overview
2. Features
3. Compatibility
4. Requirements
5. Licensing
6. Getting Support
2.1 Overview
ODBC Driver for PostgreSQL provides high-performance and feature-rich connectivity
solution for ODBC-based applications to access PostgreSQL databases from Windows,
macOS, Linux - both 32-bit and 64-bit.
Full support for standard ODBC API functions and data types implemented in our driver
makes interaction of your database applications with PostgreSQL fast, easy and extremely
handy.
Direct connectionDatabase applications based on our solution get an opportunity to establish a connection to
PostgreSQL directly. Direct Connection gives your applications an unrivaled advantage -
connection to PostgreSQL databases directly via TCP/IP. That improves performance of your
applications, their quality, reliability and especially the deployment process, since there is no
need to supply additional client software together with your application.
General Information 4
© 2018 Devart
CompatibilityODBC Driver for PostgreSQL supports PostgreSQL server versions since 8.0 up to 10.1.
We also provide compatibility with Microsoft Azure Database for PostgreSQL.
2.2 Features
Direct ConnectionDatabase applications based on our solution get an opportunity to establish connection to
PostgreSQL in directly. Direct Connection gives your applications an unrivaled advantage -
connection to PostgreSQL databases directly via TCP/IP . That improves performance of
your applications, their quality, reliability and especially the deployment process, since there is
no need to supply additional client software together with your application.
ODBC ConformanceOur ODBC driver provides full support for common ODBC interface:
ODBC Data Types support
ODBC API Functions support
In addition, we provide support for Advanced Connection String parameters. Thus allowing
any desktop and web applications to connect to PostgreSQL from various environments and
platforms, that support ODBC.
ODBC Driver for PostgreSQL5
© 2018 Devart
Development Platforms VarietyODBC Driver for PostgreSQL doesn't limit your choice of the development platform and
environment. The driver installations are available for various operational systems and
platforms. The current version supports Windows, macOS, Linux, both 32-bit and 64-bit. So
you can develop both 32-bit and 64-bit cross-platform applications.
DB CompatibilityODBC Driver for PostgreSQL supports PostgreSQL server versions since 8.0 up to 10.0.
High PerformanceAll our products are designed to help you write high-performance, lightweight data access
layers, therefore they use advanced data access algorithms and techniques of optimization.
General Information 6
© 2018 Devart
SupportVisit our Support page to get instant support from experienced professionals, fast and detailed
responses, user engagement and interaction, frequent builds with bug fixes, and much more.
2.3 Compatibility
PostgreSQL CompatibilityODBC Driver for PostgreSQL supports PostgreSQL server versions since 8.0 up to 10.1.
Microsoft Azure Database for PostgreSQL CompatibilityODBC Driver for PostgreSQL also supports Microsoft Azure Database for PostgreSQL.
Amazon Aurora CompatibilityODBC Driver for PostgreSQL additionally supports Amazon Aurora.
Supported Target PlatformsWindows, 32-bit and 64-bit (including Windows Terminal Server)
macOS, 32-bit and 64-bit
Linux, 32-bit and 64-bit
Verified Compatibility With 3rd-Party Data Tools
Microsoft Visual Studio Server Explorer and ADO.NET ODBC Provider
Microsoft SQL Server ManagementStudio
Microsoft SQL Server IntegrationServices
ODBC Driver for PostgreSQL7
© 2018 Devart
Microsoft SQL Server Data Tools
Microsoft Visual FoxPro
Microsoft Office
Embarcadero Delphi & C++Builder UniDAC, FireDAC, dbGo (ADO), BDE anddbExpress
EMS SQL Management Studio
Adobe ColdFusion
Open Office
Crystal Reports
QlikView
PHP
Python
Tableau
PowerBASIC
SAS JMP
Omnis Studio
2.4 Requirements
You need no additional software to be installed on the computer. Since ODBC Driver for
PostgreSQL doesn't use PostgreSQL Client and interacts with PostgreSQL directly via TCP/
IP.
Important condition is that only one ODBC Driver for PostgreSQL version can be installed
General Information 8
© 2018 Devart
on the PC in order to avoid incompatibility.
2.5 Licensing
ODBC Driver License Agreement
--------------------------------------------------
PLEASE READ THIS LICENSE AGREEMENT CAREFULLY. BY INSTALLING OR USING
THIS SOFTWARE,YOU INDICATE ACCEPTANCE OF AND AGREE TO BECOME BOUND
BY THE TERMS AND CONDITIONS OF THIS LICENSE. IF YOU DO NOT AGREE TO THE
TERMS OF THIS LICENSE, DO NOT INSTALL OR USE THIS SOFTWARE AND
PROMPTLY RETURN IT TO DEVART.
INTRODUCTION
This Devart end-user license agreement ("Agreement") is a legal agreement between you
(either an individual person or a single legal entity) and Devart, for the use of the ODBC Driver
software application, demos, intermediate files, printed materials, and online or electronic
documentation contained in this installation file. For the purpose of this Agreement, the
software program(s) and supporting documentation will be referred to as the "Software".
LICENSE
1. GRANT OF LICENSE
The enclosed Software is licensed, not sold. You have the following rights and privileges,
subject to all limitations, restrictions, and policies specified in this Agreement.
1.1. If you are a legally licensed user, depending on the license type specified in the
registration letter you have received from Devart upon purchase of the Software:- the
"Desktop License" allows you to install and use the Software on a single desktop computer,
provided it is accessed by no more than one person at a time, either directly or remotely, for
sole purposes only in accordance with this Agreement. If more than one person can
simultaneously use the computer where you plan to install the product,you must purchase a
Server License. A Desktop License is valid for one single desktop installation;
- the "Server License" allows you to install and use the Software on a single server,provided it
is accessed by more than one person at a time, either directly or remotely.This definition
includes, but is not limited to, Web servers, application servers,batch servers, and desktop
workstations, where more than one concurrent users can access the Software. A Server
ODBC Driver for PostgreSQL9
© 2018 Devart
License is valid for one single server installation,provided it is used by 1 (one) legal entity in
accordance with this Agreement.
1.2. If you are a legally licensed user of the Software, you are also entitled to:- make one copy
of the Software for archival purposes only, or copy the Software onto the hard disk of your
computer and retain the original for archival purposes;- develop and test Applications with the
Software, subject to the Limitations below.
1.3. You are allowed to use evaluation versions of the Software as specified in the Evaluation
section.
No other rights or privileges are granted in this Agreement.
2. LIMITATIONS
Only legally registered users are licensed to use the Software, subject to all of the conditions
of this Agreement. Usage of the Software is subject to the following restrictions.
2.1. You may not reverse engineer, decompile, or disassemble the Software.
2.2. You may not reproduce or distribute any Software documentation without express written
permission from Devart.
2.3. You may not distribute and sell any portion of the Software integrating it into your
Applications.
2.4. You may not transfer, assign, or modify the Software in whole or in part. In particular, the
Software license is non-transferable, and you may not transfer the Software installation
package.
2.5. You may not remove or alter any Devart's copyright, trademark, or other proprietary rights
notice contained in any portion of Devart files.
3. REDISTRIBUTION
The license grants you a non-exclusive right to reproduce any new software
programs(Applications) created using the Software. You cannot distribute the Software
integrated into your Applications. Any Devart's files remain Devart's exclusive property.
General Information 10
© 2018 Devart
4. TRANSFER
You may not transfer the Software to any individual or entity without express written
permission from Devart. In particular, you may not share copies of the Software under
"Desktop License" with other co-developers without obtaining proper license of these copies
for each individual; you may not install the Software under "Server License" more than 1 (one)
server without obtaining proper license of these installations for each server.
5. TERMINATION
Devart may immediately terminate this Agreement without notice or judicial resolution in the
event of any failure to comply with any provision of this Agreement. Upon such termination
you must destroy the Software, all accompanying written materials, and all copies.
6. EVALUATION
Devart may provide evaluation ("Trial") versions of the Software. You may transfer or
distribute Trial versions of the Software as an original installation package only.If the Software
you have obtained is marked as a "Trial" version, you may install and use the Software for a
period of up to 30 calendar days from the date of installation(the "Trial Period"), subject to the
additional restriction that it is used solely for evaluation of the Software and not in conjunction
with the development or deployment of any application in production. You may not use
Applications developed using Trial versions of the Software for any commercial purposes.
Upon expiration of the Trial Period, the Software must be uninstalled, all its copies and all
accompanying written materials must be destroyed.
7. WARRANTY
The Software and documentation are provided "AS IS" without warranty of any kind.Devart
makes no warranties, expressed or implied, including, but not limited to, the implied
warranties of merchantability and fitness for a particular purpose or use.
8. SUBSCRIPTION AND SUPPORT
The Software is sold on a subscription basis. The Software subscription entitles you to
download improvements and enhancement from Devart's web site as they become available,
during the active subscription period. The initial subscription period is one year from the date
ODBC Driver for PostgreSQL11
© 2018 Devart
of purchase of the license. The subscription is automatically activated upon purchase, and
may be subsequently renewed by Devart, subject to receipt applicable fees. Licensed users
of the Software with an active subscription may request technical assistance with using the
Software over email from the Software development. Devart shall use its reasonable
endeavors to answer queries raised, but does not guarantee that your queries or problems
will be fixed or solved.
Devart reserves the right to cease offering and providing support for legacy IDE versions.
9. COPYRIGHT
The Software is confidential and proprietary copyrighted work of Devart and is protected by
international copyright laws and treaty provisions. You may not remove the copyright notice
from any copy of the Software or any copy of the written materials,accompanying the
Software.
This Agreement contains the total agreement between the two parties and supersedes any
other agreements, written, oral, expressed, or implied.
2.6 Getting Support
This document lists several ways you can find help with using ODBC Driver for PostgreSQL
describes the Priority Support program.
Support OptionsThere are a number of resources for finding help on installing and using ODBC Driver for
PostgreSQL:
You can find out more about ODBC Driver for PostgreSQL installation or licensing by
consulting Installation and License articles of this manual respectively.
You can get community assistance and technical support on the Community Forum.
You can get advanced technical assistance by ODBC Driver for PostgreSQL developers
through the ODBC Driver for PostgreSQL Priority Support program.
SubscriptionsThe ODBC Driver for PostgreSQL Subscription program is an annual maintenance and
support service for ODBC Driver for PostgreSQL users.
Users with a valid ODBC Driver for PostgreSQL Subscription get the following benefits:
General Information 12
© 2018 Devart
Product support through the ODBC Driver for PostgreSQL Priority Support program
Access to new versions of ODBC Driver for PostgreSQL when they are released
Access to all ODBC Driver for PostgreSQL updates and bug fixes
Notifications about new product versions
Priority SupportODBC Driver for PostgreSQL Priority Support is an advanced product support service for
getting expedited individual assistance with ODBC Driver for PostgreSQL-related questions
from the ODBC Driver for PostgreSQL developers themselves. Priority Support is carried out
over email and has a two business day response policy. Priority Support is available for users
with an active ODBC Driver for PostgreSQL Subscription.
To get help through the ODBC Driver for PostgreSQL Priority Support program, please send
an email to [email protected] describing the problem you are having. Make sure to include
the following information in your message:
Your ODBC Driver for PostgreSQL Registration number.
Full ODBC Driver for PostgreSQL edition name and version number. You can find the
version number in DLL version information.
Versions of the PostgreSQL server and client you are using.
A detailed problem description.
If possible, ODBC Administrator Log, scripts for creating and filling in database objects, and
the application using ODBC Driver for PostgreSQL.
If you have any questions regarding licensing or subscriptions, please see the FAQ or
contact [email protected]
3 Using ODBC Driver
1. Installation
2. Connecting to PostgreSQL
3. Connection Options
4. Secure Connections
o SSL Connection Description
o SSH Connection Description
o HTTP Tunneling Description
5. Product Activation
6. Supported Data Types
7. Supported ODBC API Functions
ODBC Driver for PostgreSQL13
© 2018 Devart
3.1 Installation
ODBC Driver for PostgreSQL currently supports such platforms as: Windows, macOS,
Linux, both 32-bit and 64-bit.
See how to install Devart ODBC Driver for PostgreSQLon:
Windows
macOS
Linux
3.1.1 Windows
Installation on Windows
Important Note:
Before installing the ODBC driver, make sure that another version of ODBC Driver for
PostgreSQL is not installed on the PC, since more than one version cannot be installed
simultaneously on one PC.
1. Run the installer executive file. In an explorer it must look like the following:
2. Follow the instructions in the wizard.
Using ODBC Driver 14
© 2018 Devart
3. In case if you already have the specified installation folder on the PC or another Driver
version is installed, you will get a warning. Click Yes to overwrite the old files with the
current installation, but it is recommended to completely uninstall the previous driver
version first, and then install the new one.
4. On the Select Components page you can select whether to install the 64-bit version of the
driver or not. Clear the check box if you need no 64-bit installation. There is also a check
box on this page, that allows you to select whether to install Help and Manual.
ODBC Driver for PostgreSQL15
© 2018 Devart
5. In the License Information dialog box, you should select the license type and activate the
product. If you have no activation key, you can select Trial and use the driver for evaluation
purposes.
6. If you have an activation key, select the Activation Key option. Copy the activation key from
the registration email or your Customer Portal account and paste it into the Activation Key
edit box.
Using ODBC Driver 16
© 2018 Devart
7. If you have the activation key file, click the Load Activation Key button and browse to it.
ODBC Driver for PostgreSQL17
© 2018 Devart
8. Click Next.
9. Click Install, then Finish.
10.After the installation is completed, you need to configure the driver.
3.1.2 macOS
PrerequisitesODBC Driver for PostgreSQL works under control of an ODBC driver manager. ODBC driver
manager is not distributed along with our driver and must be installed separately.
ODBC Driver for PostgreSQL is compatible with 2 ODBC driver managers:
iODBC
UnixODBC
In case when using other ODBC driver managers, ODBC Driver for PostgreSQL will be
installed, but it will require manual modification of configuration files of these managers.
Using ODBC Driver 18
© 2018 Devart
InstallationTo install the driver, you should download the archive containing installation files, unpack and
run installation with root privileges. See the detailed description of these steps below:
1. Download the archive from Devart website. By default, the archive will be downloaded into
the ~/Downloads folder (or the selected one);
2. Run the 'Terminal' program;
3. Navigate to the 'Downloads' folder:
cd ./Users/test/Downloads
4. Unpack devartodbcpostgresql-osx.tar:
tar -xf devartodbcpostgresql-osx.tar
ODBC Driver for PostgreSQL19
© 2018 Devart
5. Execute the install.sh script with root user privileges and specify the password:
sudo ./install.sh
Using ODBC Driver 20
© 2018 Devart
6. Read the EULA carefully.
ODBC Driver for PostgreSQL21
© 2018 Devart
7. Agree to the license agreement:
Using ODBC Driver 22
© 2018 Devart
8. Select the installation folder for ODBC Driver for PostgreSQL (or accept the suggested
path):
ODBC Driver for PostgreSQL23
© 2018 Devart
9. Select the used ODBC driver manager (iODBC by default):
Using ODBC Driver 24
© 2018 Devart
10.Specify the path (or remain the default: /Library/ODBC) to odbc.ini and odbcinst.ini files.
ODBC Driver for PostgreSQL25
© 2018 Devart
11.If you have an activation key, you should create a file, for example with the "postgresql.lic"
name on your computer and paste the activation key into it. Then, specify the path to it in
order to activate the product.
To add/update the postgresql.lic file to an already installed driver, you need to create/replace
this file in the directory with the installed driver, and save the new activation key to it.
Using ODBC Driver 26
© 2018 Devart
Driver is installed successfully.
After the driver is installed, two DSNs with the names DEVART_POSTGRESQL_x64 and
DEVART_POSTGRESQL_x86 are created. You can use them to test connection with
POSTGRESQL server, we will use DEVART_POSTGRESQL_x64 as a sample. Now
perform the following steps:
1. Open the odbc.ini file, the location of which was indicated during the installation. Find the
DEVART_POSTGRESQL_x64 section and specify the required connection settings:
User ID=<your PostgreSQL User Name>
Password=<your PostgreSQL password>
Host=<your PostgreSQL Server Name>
Port=<your PostgreSQL Port>
Database=<your PostgreSQL database name>
2. Run the iODBC Test Command utility and test connection using the following command:
DSN=DEVART_POSTGRESQL_x64
ODBC Driver for PostgreSQL27
© 2018 Devart
See also:Installation on Windows
Installation on Linux
3.1.3 Linux
PrerequisitesODBC Driver for PostgreSQL works under control of an ODBC driver manager. ODBC driver
manager is not distributed along with our driver and must be installed separately.
ODBC Driver for PostgreSQL is compatible with 2 ODBC driver managers:
UnixODBC
iODBC
In case when using other ODBC driver managers, ODBC Driver for PostgreSQL will be
installed, but it will require manual modification of configuration files of these managers.
Installation
Using ODBC Driver 28
© 2018 Devart
To install the driver, you should download the archive containing installation files, unpack and
run installation with root privileges. See the detailed description of these steps below:
1. Download the archive from Devart website. By default the archive will be downloaded into
the ~/Downloads folder (or the selected one);
2. Run the 'Terminal' program;
3. Navigate to the folder with the downloaded archive cd ~/Downloads (if you downloaded the
archive into another folder, you need to specify the path to this folder as the cd command
parameter):
cd ~/Downloads/
4. Unpack devartodbcpostgresql-linux.tar:
tar -xf devartodbcpostgresql-linux.tar
5. Execute the install.sh script with root user privileges and specify the password:
sudo ./install.sh
6. Read the EULA carefully.
ODBC Driver for PostgreSQL29
© 2018 Devart
7. Agree to the license agreement:
8. Select the installation folder for ODBC Driver for PostgreSQL (or accept the suggested
Using ODBC Driver 30
© 2018 Devart
path):
9. Select the used ODBC driver manager (UnixODBC by default):
10.Specify the path (or remain the default: /etc) to odbc.ini and odbcinst.ini files.
ODBC Driver for PostgreSQL31
© 2018 Devart
11.If you have an activation key, you should create a file, for example with the "postgresql.lic"
name on your computer and paste the activation key into it. Then specify the path to it in
order to activate the product.
To add/update the postgresql.lic file to an already installed driver, you need to create/replace
this file in the directory with the installed driver, and save the new activation key to it.
Using ODBC Driver 32
© 2018 Devart
Driver is installed successfully.
After the driver is installed, two DSNs with the names DEVART_POSTGRESQL_X64 and
DEVART_POSTGRESQL_X86 are created. You can use them to test connection with
POSTGRESQL server, we will use DEVART_POSTGRESQL_X86 as an example. Now
perform the following steps:
1. Open the odbc.ini file, the location of which was indicated during the installation. Find the
DEVART_POSTGRESQL_X86 section and specify the required connection settings:
User ID=<your PostgreSQL User Name>
Password=<your PostgreSQL password>
Host=<your PostgreSQL Server Name>
Port=<your PostgreSQL Port>
Database=<your PostgreSQL database name>
2. Run the UnixODBC Test Command utility and test connection using the following
command:
isql -v DEVART_POSTGRESQL_X86
ODBC Driver for PostgreSQL33
© 2018 Devart
See also:Installation on Windows
Installation on MacOS
3.2 Connecting to PostgreSQL
1. After the driver is installed, it can be configured. For this, in the Control Panel open
Administrative Tools and find the Data Sources (ODBC) tool:
2. Now you have to add the ODBC Driver for PostgreSQL to the list of System Data Sources
or User Data Sources or File Data Sources using the ODBC Data Source
Administrator dialog.
Using ODBC Driver 34
© 2018 Devart
3. For this, click the Add button - the Create New Data Source dialog will appear with a list
of available drivers.
Select ODBC Driver for PostgreSQL and click Finish.
ODBC Driver for PostgreSQL35
© 2018 Devart
Then you will be suggested to configure the driver.
4. To activate the driver via ODBC Administrator, refer to the Product Activation article for
more details.
5. In the appeared connection dialog, you can set the connection options.
Using ODBC Driver 36
© 2018 Devart
6. Then you can click OK and finish configuration or switch to the Advanced settings tab to
specify more detailed Connection String. See the full list of supported connection string
options in the Connection Options article.
3.3 Connection Options
PostgreSQL Connection Options
The following table describes the options that you can include in the connection string for
PostgreSQL:
Option DescriptionServer Serves to supply the server name for login.
Port Used to specify the port number for the connection. 5432 by default.
User ID Used to supply a unique User ID for login.
ODBC Driver for PostgreSQL37
© 2018 Devart
Password Used to supply a password for login.
Database Used to set the name of the database
SchemaUsed to change the search path of the connection to the specified
schema, or get the first value from the search path.
CharsetUsed to set the character set that ODBC driver for PostgreSQL uses to
read and write character data.
UseUnicode
Informs server that all data between client and server sides will be passed
in Utf8 coding. Setting this option converts all fields of the String type into
WideString that allows to work correctly with symbols of almost all
languages simultaneously. On the other hand, it causes a delay in working.
If the Use Unicode property is enabled, the Charset property will be
ignored. The default value is False.
ConnectionT
imeout
Used to specify the time in seconds before an attempt to make a
connection is considered unsuccessful.
IPVersion
Used to specify the version of the Internet Protocol. Ipv4 and Ipv6 are
available. The IPBoth option value allows to check for available protocol
versions and use the first available automatically.
ProtocolUsed to set the version of protocol for communication with PostgreSQL
server.
MinFetchRo
ws
Respectively, if the SQL_ATTR_ROW_ARRAY_SIZE attribute value is
less than MinFetchRows, then the number of rows queried from the server
will equal MinFetchRows. Otherwise - it will be equal to
SQL_ATTR_ROW_ARRAY_SIZE.
In order to make the driver to query from the server exactly the same
number of rows as specified in the SQL_ATTR_ROW_ARRAY_SIZE
attribute, it is enough to set the MinFetchRows parameter to 0. However,
in this case, you should take into account, that the
SQL_ATTR_ROW_ARRAY_SIZE value is 1 by default, and therefore
performance decreases dramatically at this value.
Advanced Settings
Using ODBC Driver 38
© 2018 Devart
Option DescriptionEmpty
strings as
NULL
To retrieve metadata, not all parameters according to MSDN can accept a
null value. If NULL, the driver should return an error. But some 3rd-party
tools pass NULL to the parameters. These options should be enabled for
compatibility with such tools.Allow NULL
strings
RegionalNu
mberSetting
s
Enables using local regional settings when converting numbers to string.
RegionalDat
eTimeSettin
gs
Enables using local regional settings when converting dates and times to
string.
Example Connection String
DRIVER={Devart ODBC Driver for PostgreSQL};Data
Source=localhost;User
ID=postgres;Password=postgres;Database=postgres;Schema=public
See also:SSL Connection Description
SSH Connection Description
HTTP Tunneling Description
3.4 Secure Connections
This section describes the principles of establishing secure connections to PostgreSQL
using ODBC Driver for PostgreSQL.
SSL Connection Description
SSH Connection Description
HTTP Tunneling Description
3.4.1 SSL Connection Description
SSL (Secure Sockets Layer) is the protocol for secure access to remote computers over
insecure communication channels.
The SSL protocol runs above TCP/IP and below higher-level database protocol. It uses TCP/
IP on behalf of the higher-level protocols, and in the process allows an SSL-enabled server to
ODBC Driver for PostgreSQL39
© 2018 Devart
authenticate itself to an SSL-enabled client, allows the client to authenticate itself to the
server, and allows both machines to establish an encrypted connection.
These capabilities address fundamental concerns about communication over the Internet and
other TCP/IP networks:
SSL server authentication allows a user to confirm a server's identity. SSL-enabled client
software can use standard techniques of public-key cryptography to check that a server's
certificate and public ID are valid and have been issued by a certificate authority (CA) listed
in the client's list of trusted CAs. This confirmation might be important if the user, for
example, is sending a credit card number over the network and wants to check the
receiving server's identity.
SSL client authentication allows a server to confirm a user's identity. Using the same
techniques as those used for server authentication, SSL-enabled server software can
check that a client's certificate and public ID are valid and have been issued by a certificate
authority (CA) listed in the server's list of trusted CAs. This confirmation might be important
if the server, for example, is a bank sending confidential financial information to a customer
and wants to check the recipient's identity.
An encrypted SSL connection requires all information sent between a client and a server to
be encrypted by the sending software and decrypted by the receiving software, thus
providing a high degree of confidentiality. Confidentiality is important for both parties to any
private transaction. In addition, all data sent over an encrypted SSL connection is protected
with a mechanism for detecting tampering--that is, for automatically determining whether
the data has been altered in transit.
SSL is based on algorithms of asymmetric encryption and digital signature. Consult
PostgreSQL Reference Manual for information about Secure TCP/IP Connections with SSL.
Note:
Usage of SSL is more preferable for PostgreSQL connections than SSH because of less
required settings and higher performance.
How to connect to PostgreSQL using SSLTo use SSL encryption for connection to PostgreSQL, the corresponding SSL connection
options should be set:
Using ODBC Data Source Administrator
Using ODBC Driver 40
© 2018 Devart
SSL Options Description
Option Description
Use SSL Enables or disables SSL for connection.
CA CertificateHolds the pathname to the certificate
authority file.
Certificate Holds the pathname to the certificate file.
Key Holds the pathname to the key file.
Mode
Determines whether or with what priority an
SSL connection will be negotiated with the
server.
Example Connection String
Data Source=localhost;User
ID=postgres;Password=postgres;Database=postgres;Schema=public;Use
SSL=true;SSL CACert=c:\cacert.pem;SSL Cert=c:\client-
cert.pem;Key=c:\client-key.pem;Mode=smRequire
ODBC Driver for PostgreSQL41
© 2018 Devart
3.4.2 SSH Connection Description
ODBC Driver for PostgreSQL allows connection to PostgreSQL server from a local computer
using SSH tunneling.
SSH (Secure Shell) is the protocol for secure access to remote computers over insecure
communication channels.
The general chart of computer ties when connecting through the SSH tunnel is presented
below:
This connection method provides secure connection between your application using ODBC
Driver for PostgreSQL and SSH server that can go through insecure communication
channels, like Internet.
Connections between DB server and SSH server are insecure, therefore they should go
through secure communication channels. In the confluent case, DB server and SSH server
can be located on the same computer.
The principle of working of the SSH connections is described below. The SSH server listens
to the specified TCP/IP port. When the client tries to connect to this port, the SSH server
authenticates the client. If the authentication passes, the connection is established. Then the
client should create connections to DB server objects. The client sends an inquiry to establish
necessary connection to SSH server, and the server establishes it.
SSH Configuration using OpenSSH or other third-partySSH tunnelThe following is the step-by-step sequence of actions for the easiest case of using OpenSSH
for Windows. The detailed description of each command you can see in the documentation
for OpenSSH.
1. Download OpenSSH for Windows from http://sourceforge.net/projects/sshwindows/
2. Install SSH server:
o Choose a machine that will be used as SSH server. It does not have to be the same
machine that is a PostgreSQL server, but communication channel between SSH server
and PostgreSQL server must be protected
Using ODBC Driver 42
© 2018 Devart
o Using Windows Control Panel create a user and set a password for him. For example,
SSHUser with password SSHPass
o Install Open SSH. It is enough to install only Server components
o Open OpenSSH/bin folder
o Add SSHUser to the list of allowed users:
mkpasswd -l -u SSHUser >> ..\etc\passwd
o Use mkgroup to create a group permissions file
mkgroup -l >> ..\etc\group
o Run OpenSSH service
net start opensshd
Note:
There is no need to install SSH client, since ODBC Driver for PostgreSQL itself
implements SSH client functionality.
About the methods of higher protection (key authentication, etc.) see documentation for
OpenSSH.
How to establish SSH connection to PostgreSQLTo establish a SSH connection to PostgreSQL, the corresponding connection options have to
be set, like shown below:
Using ODBC Data Source Administrator:
ODBC Driver for PostgreSQL43
© 2018 Devart
SSH Options Description:
Option Description
Use SSH Enables or disables SSH tunneling.
SSH Host nameHolds the host name or IP address of the
SSH server to connect to.
SSH PortUsed to specify the port number for SSH
connection.
SSH User Name Sets the SSH user name for authentication.
SSH PasswordSets the SSH user password for
authentication.
SSH Client Key
Used to specify the path to the file
containing the SSH Private Key.
If the authentication by key is used, the user
must have his pair of keys. The public key
should be transferred to the server, while
Using ODBC Driver 44
© 2018 Devart
the private key will be used by the client to
sign data,
that will be used by server to authenticate
the user. The server verifies the specified
user name and Private Key - and if the
Server Key corresponds to this user,
connection may be established.
SSH Server KeyUsed to specify the path to the file that
contains SSH Public Key.
SSH StoragePathUsed to specify the path to the directory
where encyption keys are stored.
Example Connection String:
Data Source=localhost;User
ID=postgres;Password=postgres;Database=postgres;Schema=public;Use
SSH=true;SSH Hostname=localhost;SSH Port=22;SSH
Username=SSHUser;SSH Password=SSHPass;SSH Client Key='C:\User\...
\PrivateKey.pem';SSH Server Key='C:\User\...\PublicKey.pem';SSH
StoragePath='D:\...';
3.4.3 HTTP Tunneling Description
Connection through HTTP tunnelSometimes client machines are shielded by a firewall that does not allow you to connect to
server directly at the specified port. If the firewall allows HTTP connections, you can use
HTTP tunneling based on the PHP script.
An example of the web script tunneling usage can be the following: you have a remote
website, and access to its database through the port of the database server is forbidden. Only
access through HTTP port 80 is allowed, and you need to access the database from a
remote computer, like when using usual direct connection.
To start using HTTP tunneling, you should deploy the Tunneling script. The php script must
be available through the HTTP protocol. You can verify it is accessible for a web. For this
enter the http://www.domain.com/tunnel.php address to a web browser and check the result.
The only requirement to the server is PHP 5 support.
P.S.: tunnel.php is provided along with ODBC Driver for PostgreSQL. It is available at the
driver installation path, in the http folder, by default: C:\Program Files (x86)\Devart\ODBC
ODBC Driver for PostgreSQL45
© 2018 Devart
\PostgreSQL\http\tunnel.php
To connect to the database, you should set connection parameters for usual direct
connection and set the following parameters specific for the HTTP tunneling:
Using ODBC Data Source Administrator
HTTP Options Description
Option Description
Use Http Enables or disables HTTP tunneling.
Http Url Holds the url of the tunneling PHP script.
Http UsernameSet these properties if the access to the
website folder with the script is available
only for registered users authenticated with
user name and password.Http Password
Example Connection String
Data Source=localhost;Port=5432;User
Using ODBC Driver 46
© 2018 Devart
ID=postgres;Password=postgres;Database=postgres;Schema=public;Use
Http=true;Url=http://server/tunnel.php;Http Username=HttpUser;Http
Password=HttpPassword;
Connection through proxy and HTTP tunnelConsider the previous case with one more complication.
HTTP tunneling server is not directly accessible from client machine. For example, the client
can reach the server only through proxy at address 10.0.0.1, which listens on port 3128. In
this case in addition to the HTTP options, you have to setup Proxy options as follows:
Proxy Options Description
Option Description
Proxy Host NameHolds the host name or IP address of the
proxy server to connect to.
Proxy PortUsed to specify the port number for TCP/IP
connection with proxy server.
Proxy Username Holds the proxy server account name.
Proxy Password Holds the password for the proxy server
ODBC Driver for PostgreSQL47
© 2018 Devart
account.
Example Connection String
Data Source=localhost;Port=5432;User
ID=postgres;Password=postgres;Database=postgres;Schema=public;Use
Http=true;Url=http://server/tunnel.php;Proxy
Hostname=10.0.0.1;Proxy Port=3128;Proxy User=ProxyUser;Proxy
Password=ProxyPassword;
Additional informationTechnically speaking, there is one more way to tunnel network traffic. The Secure Shell
forwarding, or SSH, can be used for forwarding data. However, main purpose of SSH is traffic
encryption rather than avoiding firewalls or network configuration problems. The SSH
Connection article describes how to use SSH protocol in ODBC Driver for PostgreSQL.
Keep in mind that traffic tunneling or encryption always increase CPU usage and network
load. It is recommended that you use direct connection whenever possible.
3.5 Product Activation
Obtaining Activation Key
Activation on Windows
Activation on macOS
Activation on Linux
Where to see the license information
3.5.1 Obtaining Activation Key
To obtain a product activation key, follow these instructions:
1. After purchasing the license, you receive a registration email to the email address,
specified when ordering the product.
2. This email contains a Driver Activation Key and Login Credentials for the Customer Portal.
Keep this information secret.
3. You can copy the Activation Key either from the registration email or at the Customer Portal
account.
4. To login to the Customer Portal, use your Username and Password from the registration
email.
5. To obtain your Activation Key, click the View link on the right. You will get the following
dialog box:
Using ODBC Driver 48
© 2018 Devart
6. Copy the Activation Key with the Copy to Clipboard button.
See also:Activation on Windows
Activation on MacOS
Activation on Linux
3.5.2 Activation on Windows
Driver Activation After InstallationTo activate your installed driver using ODBC Administrator, perform the following steps:
1. Run ODBC Administrator.
2. In the System DSN tab click the Add button.
ODBC Driver for PostgreSQL49
© 2018 Devart
3. In the appeared dialog box, select the installed driver, click Finish.
Using ODBC Driver 50
© 2018 Devart
4. In the Driver Configuration dialog box, on the License tab, click the Input Activation Key
button.
ODBC Driver for PostgreSQL51
© 2018 Devart
5. Copy the activation key from the registration email carefully and paste it into the Input
Activation Key edit box.
6. If you have the activation key file, click the Load Key button and browse to it.
7. Click OK.
Using ODBC Driver 52
© 2018 Devart
3.5.3 Activation on macOS
Driver Activation After InstallationIn case if you installed the driver as TRIAL and you have an activation key, in order to activate
your driver, perform the following steps:
1. Create a file with the "activation.key" name.
2. Copy the activation key from the registration email or your Customer Portal account and
paste it into the created file.
3. Place the "activation.key" file into the folder where the driver was installed (for Devart
ODBC Driver for PostgreSQL it is /usr/local/devart/odbcpostgresql by default).
See also:Activation on Windows
Activation on Linux
3.5.4 Activation on Linux
Driver Activation After InstallationIn case if you installed the driver as TRIAL and you have an activation key, in order to activate
your driver, perform the following steps:
1. Create a file with the "activation.key" name.
2. Copy the activation key from the registration email or your Customer Portal account and
paste it into the created file.
3. Place the "activation.key" file into the folder where the driver was installed (for Devart
ODBC Driver for PostgreSQL it is /usr/local/devart/odbcpostgresql by default).
See also:Activation on Windows
Activation on macOS
ODBC Driver for PostgreSQL53
© 2018 Devart
3.5.5 Where to See the License Information?
To see the license information of your installed driver, do the following:
1. In the Control Panel run ODBC Administrator
2. Open the System DSN tab and click the Add button
3. Select the driver and click Finish
Using ODBC Driver 54
© 2018 Devart
4. In the appeared dialogue, select the License tab
ODBC Driver for PostgreSQL55
© 2018 Devart
See alsoProduct Activation
3.6 Supported Data Types
ODBC Driver for PostgreSQL supports all the PostgreSQL data types.
The complete list of PostgreSQL data types is available in the PostgreSQL documentation.
Data Type MappingThe following table describes how ODBC data types are mapped to PostgreSQL data types.
PostgreSQL Data Types ODBC Data Types
BIGINT SQL_BIGINT
BIT SQL_BIT
BYTEA SQL_LONGVARBINARY
CHAR SQL_WCHAR
VARCHAR SQL_WVARCHAR
NAME SQL_WVARCHAR
DATE SQL_TYPE_DATE
DOUBLE SQL_DOUBLE
REAL SQL_REAL
TEXT SQL_WLONGVARCHAR
NUMERIC SQL_NUMERIC
SQL_TIMESQL_TYPE_TIME
TIMETZ
TIMESTAMPTZ SQL_TYPE_TIMESTAMP
SQL_INT, SQL_OID SQL_INTEGER
UUID SQL_GUID
3.7 Supported ODBC API Functions
This section summarizes ODBC routines, categorized by functionality.
For the complete ODBC API reference, please refer to the ODBC Programmer's Reference
at http://msdn.microsoft.com/en-us/library/ms714177.aspx.
Using ODBC Driver 56
© 2018 Devart
An application can call SQLGetInfo function to obtain conformance information about ODBC
Driver for PostgreSQL. To obtain information about support for a specific function in the
driver, an application can call SQLGetFunctions.
Important Note:
For backward compatibility, ODBC Driver for PostgreSQL supports all deprecated
functions.
The following tables list ODBC Driver for PostgreSQL calls grouped by task:
ODBC API Calls for Connecting to a Data Source
Function Name Support Standard Purpose
SQLAllocHandle ISO 92
Obtains an
environment,
connection,
statement, or
descriptor handle.
SQLConnect ISO 92
Connects to a
specific driver by
data source name,
user ID, and
password.
SQLDriverConnect ODBC
Connects to a
specific driver by
connection string or
requests that the
Driver Manager and
driver display
connection dialog
boxes for the user.
SQLAllocEnv Deprecated
Obtains an
environment handle
allocated from
driver.
ODBC Driver for PostgreSQL57
© 2018 Devart
SQLAllocConnect DeprecatedObtains a
connection handle
ODBC API Calls for Obtaining Information about a Driverand Data Source
Function Name Support Standard Purpose
SQLDataSources ISO 92
Returns the list of
available data
sources, handled by
the Driver Manager
SQLDrivers ODBC
Returns the list of
installed drivers and
their attributes,
handles by Driver
Manager
SQLGetInfo ISO 92
Returns information
about a specific
driver and data
source.
SQLGetFunctions ISO 92Returns supported
driver functions.
SQLGetTypeInfo ISO 92
Returns information
about supported
data types.
ODBC API Calls for Setting and Retrieving DriverAttributes
Function Name Support Standard Purpose
SQLSetConnectAttr ISO 92Sets a connection
attribute.
SQLGetConnectAttr ISO 92 Returns the value of
Using ODBC Driver 58
© 2018 Devart
a connection
attribute.
SQLSetConnectOpti
onDeprecated
Sets a connection
option
SQLGetConnectOpt
ionDeprecated
Returns the value of
a connection option
SQLSetEnvAttr ISO 92Sets an environment
attribute.
SQLGetEnvAttr ISO 92
Returns the value of
an environment
attribute.
SQLSetStmtAttr ISO 92Sets a statement
attribute.
SQLGetStmtAttr ISO 92
Returns the value of
a statement
attribute.
SQLSetStmtOption DeprecatedSets a statement
option
SQLGetStmtOption DeprecatedReturns the value of
a statement option
ODBC API Calls for Preparing SQL Requests
Function Name Support Standard Purpose
SQLAllocStmt DeprecatedAllocates a
statement handle
SQLPrepare ISO 92
Prepares an SQL
statement for later
execution.
SQLBindParameter ODBC
Assigns storage for
a parameter in an
SQL statement.
ODBC Driver for PostgreSQL59
© 2018 Devart
SQLGetCursorNam
eISO 92
Returns the cursor
name associated
with a statement
handle.
SQLSetCursorNam
eISO 92
Specifies a cursor
name.
SQLSetScrollOption
sODBC
Sets options that
control cursor
behavior.
ODBC API Calls for Submitting Requests
Function Name Support Standard Purpose
SQLExecute ISO 92Executes a
prepared statement.
SQLExecDirect ISO 92Executes a
statement
SQLNativeSql ODBC
Returns the text of an
SQL statement as
translated by the
driver.
SQLDescribeParam ODBC
Returns the
description for a
specific parameter
in a statement.
SQLNumParams ISO 92
Returns the number
of parameters in a
statement.
SQLParamData ISO 92
Used in conjunction
with SQLPutData to
supply parameter
data at execution
time. (Useful for long
Using ODBC Driver 60
© 2018 Devart
data values.)
SQLPutData ISO 92
Sends part or all of a
data value for a
parameter. (Useful
for long data values.)
ODBC API Calls for Retrieving Results and Informationabout Results
Function Name Support Standard Purpose
SQLRowCount ISO 92
Returns the number
of rows affected by
an insert, update, or
delete request.
SQLNumResultCols ISO 92
Returns the number
of columns in the
result set.
SQLDescribeCol ISO 92Describes a column
in the result set.
SQLColAttribute ISO 92
Describes attributes
of a column in the
result set.
SQLColAttributes Deprecated
Describes attributes
of a column in the
result set.
SQLFetch ISO 92Returns multiple
result rows.
SQLFetchScroll ISO 92Returns scrollable
result rows.
SQLExtendedFetch DeprecatedReturns scrollable
result rows.
SQLSetPos ODBCPositions a cursor
within a fetched
ODBC Driver for PostgreSQL61
© 2018 Devart
block of data and
enables an
application to
refresh data in the
rowset or to update
or delete data in the
result set.
SQLBulkOperations ODBC
Performs bulk
insertions and bulk
bookmark
operations, including
update, delete, and
fetch by bookmark.
ODBC API Calls for Retrieving Error or DiagnosticInformation
Function Name Support Standard Purpose
SQLError Deprecated
Returns additional
error or status
information
SQLGetDiagField ISO 92
Returns additional
diagnostic
information (a single
field of the
diagnostic data
structure).
SQLGetDiagRec ISO 92
Returns additional
diagnostic
information (multiple
fields of the
diagnostic data
structure).
Using ODBC Driver 62
© 2018 Devart
ODBC API Calls for Obtaining Information about theData Source's System Tables (Catalog Functions) Item
Function Name Support Standard Purpose
SQLColumnPrivileg
esODBC
Returns a list of
columns and
associated
privileges for one or
more tables.
SQLColumns X/Open
Returns the list of
column names in
specified tables.
SQLForeignKeys ODBC
Returns a list of
column names that
make up foreign
keys, if they exist for
a specified table.
SQLPrimaryKeys ODBC
Returns the list of
column names that
make up the primary
key for a table.
SQLSpecialColumn
sX/Open
Returns information
about the optimal set
of columns that
uniquely identifies a
row in a specified
table, or the columns
that are
automatically
updated when any
value in the row is
updated by a
transaction.
ODBC Driver for PostgreSQL63
© 2018 Devart
SQLStatistics ISO 92
Returns statistics
about a single table
and the list of
indexes associated
with the table.
SQLTablePrivileges ODBC
Returns a list of
tables and the
privileges
associated with
each table.
SQLTables X/Open
Returns the list of
table names stored
in a specific data
source.
ODBC API Calls for Performing Transactions
Function Name Support Standard Purpose
SQLTransact DeprecatedCommits or rolls
back a transaction
SQLEndTran ISO 92Commits or rolls
back a transaction.
ODBC API Calls for Terminating a Statement
Function Name Support Standard Purpose
SQLFreeStmt ISO 92
Ends statement
processing,
discards pending
results, and,
optionally, frees all
resources
associated with the
statement handle.
Using ODBC Driver 64
© 2018 Devart
SQLCloseCursor ISO 92
Closes a cursor that
has been opened on
a statement handle.
SQLCancel ISO 92Cancels an SQL
statement.
ODBC API Calls for Terminating a Connection
Function Name Support Standard Purpose
SQLDisconnect ISO 92Closes the
connection.
SQLFreeHandle ISO 92
Releases an
environment,
connection,
statement, or
descriptor handle.
SQLFreeConnect DeprecatedReleases
connection handle.
SQLFreeEnv DeprecatedReleases an
environment handle.