[英]Unable to connect to PostgreSQL using pyodbc
我是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
@GordThompson,您的評論幫助我找到了問題所在。 我已經下載並安裝了驅動程序 x64 版本,那時pyodbc.drivers()
沒有顯示 PostgresDriver 作為驅動程序之一。 然后我下載了 x86 版本,它現在開始顯示驅動程序列表(“ODBC 數據源 32 位”應用程序和pyodbc.drivers()
輸出)並且程序單元按預期工作。
控制台 OUTPUT:
['Driver da Microsoft para arquivos texto (*.txt; *.csv)', 'Driver do Microsoft Access (*.mdb)', 'Driver do Microsoft dBase (*.dbf)', 'Driver do Microsoft Excel(*.xls)', 'Driver do Microsoft Paradox (*.db )', 'Microsoft Access Driver (*.mdb)', 'Microsoft Access-Treiber (*.mdb)', 'Microsoft dBase Driver (*.dbf)', 'Microsoft dBase-Treiber (*.dbf)', 'Microsoft Excel Driver (*.xls)', 'Microsoft Excel-Treiber (*.xls)', 'Microsoft ODBC for Oracle', 'Microsoft Paradox Driver (*.db )', 'Microsoft Paradox-Treiber (*.db )', 'Microsoft Text Driver (*.txt; *.csv)', 'Microsoft Text-Treiber (*.txt; *.csv)', 'SQL Server', 'PostgreSQL ANSI', 'PostgreSQL Unicode']
10 employee1 10 address1
20 employee2 20 address2
30 employee3 30 address3
40 employee4 40 address4
50 employee5 50 address5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.