我确认,我已经在StackOverflow中查看了多个关于类似问题的帖子,但仍然被下面的问题卡住,因此发帖寻求指导/指针。
下面是代码
import pypyodbc as pyodbc
import configparser
config = configparser.ConfigParser()
config.read('config.ini')
conn_str = 'DRIVER={' + config['db2']['driver'] + '};' \
+ 'SERVER=' + config['db2']['server'] + ';' \
+ 'DATABASE=' + config['db2']['database'] + ';' \
+ 'UID=' + config['db2']['uid'] + ';' \
+ 'PWD=' + config['db2']['password']
print(conn_str)
connection = pyodbc.connect(
conn_str
)
cur = connection.cursor()
cur.execute('SELECT col_1, col_2 FROM schema.table_name LIMIT 2')
for row in cur:
print (row)
代码执行的输出
第一个
配置文件
$ cat config.ini
[db2]
driver = 'IBM i Access ODBC Driver 64-bit'
server = 'hostname'
database = 'database'
uid = 'userid'
password = 'password'
ODBC安装程序和卸载程序命令的输出
第一个
我已仔细检查并确认驱动程序名称“IBM i Access ODBC Driver 64-bit”没有排印错误
操作系统信息x86_64 GNU/Linux
请提供有关如何调试问题的任何提示/指导?
1条答案
按热度按时间ylamdve61#
我认为您将模式名称与数据库名称混淆了。很可能您可以完全省略数据库名称(或将其保留为空字符串并默认为 *SYSBAS)。相反,您可以指定DefaultLibraries参数。
有关有效连接字符串(和odbc.ini)关键字的信息,请参见IBM文档here。
同样地,您可以省略
PORT
、PROTOCOL
和HOSTNAME保留字,因为此驱动程序不支援这些保留字。这样,
odbc.ini
看起来就像下面这样简单: