我想在Python 3.3(Windows 7-64位)上使用SQLAlchemy(使用pyodbc)連接到SQL Server 2012數據庫。我能夠使用直接pyodbc連接,但在使用SQLAlchemy進行連接時不成功。我有用於數據庫訪問的dsn文件設置。使用sqlalchemy和pyodbc連接到SQL Server 2012
我成功地連接使用直pyodbc是這樣的:
con = pyodbc.connect('FILEDSN=c:\\users\\me\\mydbserver.dsn')
對於SQLAlchemy的我曾嘗試:
import sqlalchemy as sa
engine = sa.create_engine('mssql+pyodbc://c/users/me/mydbserver.dsn/mydbname')
的create_engine
方法實際上並沒有建立連接和成功,但 i如果我嘗試導致sqlalchemy實際設置連接(如engine.table_names()
),但需要一段時間但返回此錯誤:
DBAPIError: (Error) ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect)') None None
我不知道哪裏出了問題是如何看到什麼連接字符串實際上是由sqlalchemy傳遞給pyodbc。我已經用SQLite和MySQL成功地使用了相同的sqlalchemy類。
在此先感謝!
謝謝。 SQL Server實例是唯一不在我正在工作的計算機上的實例,所以我不確定這裏是否有有趣的事情發生。只是爲了擴大一點你列出的刺激(因爲sql服務器實例明顯命名) - 'sa.create_engine('mssql + pyodbc:// [機器名] \\ [服務器名]/[數據庫]')' –
不必命名。連接並使用配置爲「默認實例」的sql server實例更容易。當您將在一臺服務器上託管多個SQL Server實例時,需要命名實例。 – marr75