How to connect to TIBCO Data Virtualization from Python on Linux using an ODBC DSN?

How to connect to TIBCO Data Virtualization from Python on Linux using an ODBC DSN?

book

Article ID: KB0073351

calendar_today

Updated On:

Products Versions
TIBCO Data Virtualization 8.4.x and higher

Description

How to connect to TIBCO Data Virtualization from Python using a Linux box

Issue/Introduction

How to connect to TIBCO Data Virtualization from Python using a Linux box

Resolution

 A Python script may be used to connect to TDV (TIBCO Data Virtualization), using an ODBC DSN. The steps are below.

1.   If a TDV ODBC driver is not already installed on the Linux box, install the ODBC driver.
      The latest driver may be downloaded from  https://edelivery.tibco.com/

2.   Set  environment variables ODBCINSTINI and  ODBCINI.

       Example
             export ODBCINSTINI=/Anil/odbc83_anil_only/odbcinst.ini
             export ODBCINI=/Anil/odbc83_anil_only/odbc.ini

3.   Run the driverConfig utility from the TDV ODBC driver installation.
      Follow the prompts that the utility presents to create an ODBC DSN, say "dsn1".

      Example
                    User-added image
     
  •       driverConfig will create two files named odbc.ini and odbc.inst.
  •       odbc.ini contains the DSN, as shown below. The Python script will use the DSN.

                    User-added image

4.   Create a Python script, as shown in the example below. 

      The script will do the  following:
  • open the odbc.ini file.
  • read the DSN to obtain the driver details  and connection details.
  • load the driver into memory and then open a connection.
      test.py

      import pyodbc
      import os
      os.environ[" TDV_ODBC_UODBC"]="TRUE"
      os.environ[" ODBCINI"]="/Anil/odbc_83_anil_only// odbc.ini"
      conn =  pyodbc.connect('DSN=dsn1')
      conn.setdecoding(pyodbc.SQL_CHAR, encoding='utf-8')
      conn.setencoding(unicode, encoding='utf-8');
      cur = conn.cursor()
      cur.execute("select CompanyName from ViewOrder")
      row = cur.fetchall()
      print(row)

Note: For using the ODBC driver with the unixODBC Driver Manager, the script needs to set the environment variable TDV_ODBC_UODBC to TRUE.

5.   Run the Python script. 

                  User-added image