【发布时间】:2020-07-15 07:50:10
【问题描述】:
我是 pyodbc 的新手。
我无法使用以下代码连接到 PostgreSQL -
cnxn = pyodbc.connect('Driver={PostgreSQL35W};Server=dummy.cag.com;Port=5432;Database=postgres;Uid=postgres;Pwd=postgres;')
它抛出“pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')”错误。
连测试连接都成功了。
在这方面寻求帮助。
完整代码 - 它只是一个简单的程序单元 -
import pyodbc as pyodbc
def perform_db_operation():
cnxn = pyodbc.connect('Driver={PostgreSQL35W};Server=dummy.cag.com;Port=5432;Database=postgres;Uid=postgres;Pwd=postgres;')
select_cursor = cnxn.cursor()
sql_select_stmt = "SELECT * from public.gluetable212a"
select_cursor.execute(sql_select_stmt)
result_set = select_cursor.fetchall()
for current_record in result_set:
passenger_id = current_record[0]
age = current_record[1]
fare = current_record[2]
ticket = current_record[3]
# insert_cursor.execute(sql_insert_stmt, emp_name, emp_id)
print(passenger_id, age, fare, ticket)
select_cursor.close()
cnxn.commit()
cnxn.close()
perform_db_operation()
运行控制台日志 -
C:\Users\KarthikDeepan.Gujulu\PycharmProjects\MyProj\venv\Scripts\python.exe C:/Users/KarthikDeepan.Gujulu/PycharmProjects/MyProj/ICOMP/PyODBCTrail1.py
Traceback (most recent call last):
File "C:/Users/KarthikDeepan.Gujulu/PycharmProjects/MyProj/ICOMP/PyODBCTrail1.py", line 38, in <module>
perform_db_operation()
File "C:/Users/KarthikDeepan.Gujulu/PycharmProjects/MyProj/ICOMP/PyODBCTrail1.py", line 16, in perform_db_operation
cnxn = pyodbc.connect('Driver={PostgreSQL ANSI};Data Source=decheqaperf01v.asg.com;Port=5432;Database=postgres;Uid=postgres;Pwd=postgres;')
pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
Process finished with exit code 1
【问题讨论】:
-
作为错误状态,您缺少数据源条目。看看connectionstrings.com/postgresql
-
谢谢,但我已经检查过了。我的连接字符串正确吗?我应该在这里给 Driver=PostgreSQL35W 吗?还是我错过了什么?
-
需要数据源条目。在您的连接字符串中,您缺少
Data Source条目。 -
请贴出相关代码和完整的回溯。这个错误开始没有任何意义
-
@kdkarthik - 检查
pyodbc.drivers()返回的列表,了解您的 Python 应用程序可用的驱动程序。
标签: python-3.x postgresql odbc pyodbc