Win环境下Python语言通过ODBC/JDBC连接SinoDB数据库

1. 前言

  本文介绍在Windows环境下Python语言通过ODBC和JDBC的方式连接SinoDB数据库,并对数据库进行基本操作。

2. 软件安装包

  SinoDB数据库:SinoDB 12.10.FC8
  SinoDB CSDK(Windows):SinoDB Client-SDK 4.10.FC8
  Python语言开发包:python-3.10.11-amd64.exe
  Python语言IDE:pycharm-professional-2023.1.exe (免费试用30天)
  JDK版本:jdk1.8.0

3. 环境配置

3.1 SinoDB数据库

  安装SinoDB并初始化数据库实例(例如,数据库实例:sinodb_ids,端口:9091),创建一个database,创建一张表;

  $echo "create database testdb in datadbs with log;" | dbaccess
  $echo "create table t_20230423(c1 int, c2 char(16));" | dbaccess testdb

3.2 SinoDB CSDK(Windows)

1、安装SinoDB Client-SDK 4.10.FC8
2、配置ODBC数据源

  • 安装CSDK后,打开setnet32.exe,进行配置:
    image
    image
  • 配置ODBC确认能连上数据库
    打开ODBC数据源(64位)
    image
    image
    如果测试连接失败,检查SinoDB数据库服务器的防火墙是否已经关闭。

4. Python语言通过ODBC连接SinoDB数据库

4.1 下载第三方库

pip install pyodbc

4.2 新建一个Python File文件:main.py

import pyodbc

conn = pyodbc.connect(
“DSN=sinodb;”
)

cursor = conn.cursor()

cursor.execute(“SELECT * FROM t_20230423”)

rows = cursor.fetchall()

for row in rows:
print(row)

cursor.close()
conn.close()

4.3 运行程序

5. Python语言通过JDBC连接SinoDB数据库

5.1 下载第三方库

pip install jaydebeapi

5.2 新建一个Python File文件:sinodb.py

import jaydebeapi

jclassname = ‘com.informix.jdbc.IfxDriver’
url = ‘jdbc:informix-sqli://192.168.16.21:9091/testdb:INFORMIXSERVER=sinodb_ids’
driver_args = [‘informix’, ‘sinoregal’]
jars = ‘d:/lib/sinodb12.10fc8/ifxjdbc.jar’
conn = jaydebeapi.connect(jclassname, url, driver_args, jars=jars)

cursor = conn.cursor()

cursor.execute(“SELECT * FROM t_20230423”)

rows = cursor.fetchall()

for row in rows:
print(row)

cursor.close()
conn.close()

5.3 设置Java环境变量

安装配置JDK

5.4 运行程序