是否可以在Python中使用SQLite3和Microsoft SQL Server?

时间:2014-03-04 17:28:04

标签: python sql-server sqlite ipython

我正在尝试使用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)有关。

提前谢谢。

2 个答案:

答案 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的驱动程序模块。