我正在尝试使用SQLite3模块连接到Microsoft SQL Server。
似乎所有东西都被识别,但无论出于何种原因,它都无法识别我的列或表。
import sqlite3
con = sqlite3.connect('V7.0.6_X2_857I.sql')
cur = con.cursor()
cur.execute("""SELECT * FROM TS857_5400""")
all = cur.fetchall()
print one
但是,我遇到了这个错误:
---------------------------------------------------------------------------
OperationalError Traceback (most recent call last)
<ipython-input-39-04a8789e04a7> in <module>()
3 con = sqlite3.connect('V7.0.6_X2_857I.sql')
4 cur = con.cursor()
----> 5 cur.execute("""SELECT * FROM TS857_5400""")
6 all = cur.fetchall()
7 print one
OperationalError: no such table: TS857_5400
我知道这个表存在的事实,所以我想知道这是否与声明的连接字符串或SQLite3的限制(与SQL Server)有关。
提前谢谢。
答案 0 :(得分:4)
SQLite是一个完全不同的数据库,请参阅http://www.sqlite.org/; sqlite3
模块与Microsoft SQL Server有无,但与嵌入式数据库有关。
换句话说,您无法使用sqlite3
模块连接到SQL Server。
您需要安装第三方库才能连接。 Python Wiki列出了几个选项,从ODBC驱动程序到SQL Server专用连接器。哪一个适合您,取决于您的Python版本和当前的操作系统。
答案 1 :(得分:2)
你会发现SQLite创建了一个名为'V7.0.6_X2_857I.sql'
的文件,其中包含一个新创建的数据库。 sqlite3
模块仅处理SQLite,无法连接到任何其他数据库类型。您没有看到该表,因为您正在使用刚刚创建的空数据库。
不幸的是,我的驱动程序知识不是最新的,但您需要的是SQL Server的兼容DB API的驱动程序模块。