> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/connectors/clients/odbc/odbc-driver.md).

# Installation and Setup

Install and register the GridGain 9 ODBC driver on Windows and Linux, configure the cluster, and use it with tools such as pyodbc.

## Overview

GridGain 9 includes an ODBC driver that allows you both to select and to modify data stored in a distributed cache by using standard SQL queries and native ODBC API. ODBC driver uses your [client connection configuration](/docs/connectors/clients/overview.md).

ODBC driver only provides thread-safety at the connections level. This means that you should not access the same connection from multiple threads without additional synchronization, though you can create separate connections for every thread and use them simultaneously.

The ODBC driver implements version 3.8 of the ODBC API. For detailed information on ODBC please refer to [ODBC Programmer's Reference](https://msdn.microsoft.com/en-us/library/ms714177.aspx).

## Installing ODBC Driver

To use ODBC driver, register it in your system so that your ODBC Driver Manager will be able to locate it.

### Installing on Windows

#### Prerequisites

Microsoft Visual C++ 2017 Redistributable Package should be installed first.

#### Installation process

Launch the provided installer and follow the instructions.

### Configuring the Cluster

ODBC driver uses the client connector to work with the cluster. Make sure to configure the port to the one you intend to use, for example:

```
node config update ignite.clientConnector.port=10469
```

For more information on configuring client connector, see [Client Connector Configuration](/docs/connectors/clients/overview.md#client-connector-configuration).

### Installing on Linux

To build and install ODBC driver on Linux, you need to first install ODBC Driver Manager. The ODBC driver has been tested with [UnixODBC](http://www.unixodbc.org).

#### Prerequisites

Install the following first:

* [libstdc](https://gcc.gnu.org/onlinedocs/libstdc%2B%2B) library supporting C++14 standard;
* [UnixODBC](http://www.unixodbc.org) driver manager.

#### Download from website

You can get the built rpm or deb package from the provided website. Then, install the package locally to use it.

## Supported Data Types

The following SQL data types are supported:

* `SQL_CHAR`
* `SQL_VARCHAR`
* `SQL_LONGVARCHAR`
* `SQL_SMALLINT`
* `SQL_INTEGER`
* `SQL_FLOAT`
* `SQL_DOUBLE`
* `SQL_BIT`
* `SQL_TINYINT`
* `SQL_BIGINT`
* `SQL_BINARY`
* `SQL_VARBINARY`
* `SQL_LONGVARBINARY`
* `SQL_GUID`
* `SQL_DECIMAL`
* `SQL_TYPE_DATE`
* `SQL_TYPE_TIMESTAMP`
* `SQL_TYPE_TIME`

## Using pyodbc

GridGain can be used with [pyodbc](https://pypi.org/project/pyodbc/). Here is how you can use pyodbc in GridGain 9:

* Install pyodbc:

  ```bash
  pip3 install pyodbc
  ```
* Import pyodbc to your project:

  ```python
  import pyodbc
  ```
* Connect to the database:

  ```python
  conn = pyodbc.connect('Driver={Apache Ignite 3};Address=127.0.0.1:10800;')
  ```
* Set encoding to UTF-8:

  ```python
  conn.setencoding(encoding='utf-8')
  conn.setdecoding(sqltype=pyodbc.SQL_CHAR, encoding="utf-8")
  conn.setdecoding(sqltype=pyodbc.SQL_WCHAR, encoding="utf-8")
  ```
* Get data from your database:

  ```python
  cursor = conn.cursor()
  cursor.execute('SELECT * FROM table_name')
  ```

For more information on using pyodbc, use the [official documentation](https://github.com/mkleehammer/pyodbc/wiki).
