我正在尝试使用 PyODBC 连接到 HFSQL 数据库。我即将让它发挥作用,但有一些我无法弄清楚。
这是我的代码:
import pyodbc
import pandas as pd
def main():
engine = 'Driver={HFSQL};Server Name=10.11.0.17;Server Port=4900;Database=suivi_dossiers;UID=admin;PASSWORD='
cnx = pyodbc.connect(engine)
cursor = cnx.cursor()
cursor.execute("SHOW TABLES")
for x in cursor.fetchall():
print(x)
data = pd.read_sql("SELECT * FROM CLIENTS",cnx)
print(data)
if __name__=='__main__':
main()
请注意,数据库不需要任何密码。我知道参数是正确的,因为如果我稍微改变它们,就会出现错误!
使用调试器和打印,我发现这个脚本在到达
cnx = pyodbc.connect(dsn)
行时崩溃,但不是立即崩溃。就好像它能够连接,但在此过程中的某个地方,它因任何原因崩溃了。
更糟糕的是它甚至没有崩溃,它只是结束了进程。这意味着它甚至不会尝试其他代码行(该行之后的打印)。使用 Try/Except 不会再做任何事情。所以老实说我不知道该怎么办。
值得注意的是,我在 MySQL 数据库上以相同的方式尝试了这个确切的代码/逻辑,并且它有效,任何时候都不会崩溃。
我还尝试从 ODBC 系统设置 DSN,它给出的结果与没有 DSN 时完全相同。
此外,ODBC 可以与 HFSQL 正常配合,因为当我在 PowerBI 上使用 ODBC 方法时,我可以从 HFSQL 数据库中获取数据。所以问题肯定来自 PYODBC。
我也尝试过使用 PyPyODBC,这是在某个时候推荐的,但它已经很多年没有更新了(最后支持的 Python 版本是 3.3)
因此,如果有人知道,即使只是一个可以帮助我访问这个糟糕的数据库的解决方法,那就太好了!谢谢!
我也面临同样的问题。有解决方法吗?