在本地主机连接数据库时出现pyodbc连接错误
我在自己电脑上有一个叫做'Test'的本地数据库,里面有一个表叫'Tags'。我可以通过SQL Server管理工作室2008来访问这个数据库,并从这个表中查询数据。
不过,当我使用pyodbc的时候,总是遇到一些问题。
我用这个:
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost:1433;DATABASE=Test')
结果出现了错误:
pyodbc.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]Invalid connection. (14) (SQLDriverConnectW); [01000] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Invalid Instance()). (14)')
(无论是否指定端口都一样)
我尝试了一个替代的连接字符串:
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost\Test,1433')
虽然没有出现错误,但接下来:
cur = conn.cursor()
cur.execute("SELECT * FROM Tags")
又出现了错误:
pyodbc.ProgrammingError: ('42S02', "[42S02] [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'Tags'. (208) (SQLExecDirectW)")
这可能是什么原因呢?
5 个回答
2
试着把'localhost'换成'(local)'或者'.'。这个方法对我解决了问题。
3
我在你的连接字符串里没有看到任何身份验证的属性。你可以试试这样做(我这里用的是Windows身份验证):
conn = pyodbc.connect('Trusted_Connection=yes', driver = '{SQL Server}',
server = 'localhost', database = 'Test')
cursor = conn.cursor()
# assuming that Tags table is in dbo schema
cursor.execute("SELECT * FROM dbo.Tags")
6
我试着把你的查询改成了
SELECT * FROM Test.dbo.Tags
结果成功了。