ODBC Driver for PostgreSQL

Connecting to PostgreSQL with Python and ODBC Driver



Installing the ODBC Driver for PostgreSQL

One of the most convenient methods to connect to an external database or access cloud data from Python is via ODBC. Devart has developed a range of ODBC Drivers for Python to work with databases and cloud services.

If you don't have Python installed on your machine, go to the Python official website, download the appropriate installer and run it. You will also need to install the pyodbc module — the easiest way to do that is by using the pip install pyodbc command in the Python interactive mode. Next, you need to download the ODBC Driver for PostgreSQL. To use the ODBC driver as a translation layer between the application and the database, you need to configure it by following the installation instructions.

Connecting to PostgreSQL from Python using ODBC Driver for PostgreSQL

Here’s an example to show you how to connect to PostgreSQL via Devart ODBC Driver in Python. First we import the pyodbc module, then create a connection to the database, insert a new row and read the contents of the EMP table while printing each row to the Python interactive console. To execute the script, you can type the code directly in the interactive console or add the code to a file with the .py extension and run the file from the command prompt.

Step 1: Connect

import pyodbc 
cnxn = pyodbc.connect('DRIVER={Devart ODBC Driver for PostgreSQL};Server=myserver;Port=myport;Database=mydatabase;User ID=myuserid;Password=mypassword;String Types=Unicode')

Step 2: Insert a row

Here's a simple example of how to execute an insert statement to test the connection to the database. The script inserts a new record to the EMP table.

cursor = cnxn.cursor()
cursor.execute("INSERT INTO EMP (EMPNO, ENAME, JOB, MGR) VALUES (535, 'Scott', 'Manager', 545)") 

Step 3: Execute query

The cursor.execute() function retrieves rows from the select query on a dataset. The cursor.fetchone() function iterates over the result set returned by cursor.execute() while the print() function prints out all records from the table to the console.

cursor = cnxn.cursor()	
cursor.execute("SELECT * FROM EMP") 
row = cursor.fetchone() 
while row:
	print (row) 
	row = cursor.fetchone()
© 2015-2024 Devart. All Rights Reserved. Request Support ODBC Forum Provide Feedback