Python 3.3(Windows 7-64-bit)でSQLAlchemy(pyodbc)を使用してSQL Server 2012データベースに接続しようとしています。私はまっすぐpyodbcを使用して接続することができましたが、SQLAlchemyを使用して接続すると失敗しました。私はデータベースアクセスのためのdsnファイルセットアップを持っています。sqlalchemyとpyodbcを使用したSQL Server 2012への接続
私は正常にこのようにストレートpyodbcを使用して接続:私は試してみましたSQLAlchemyのために
con = pyodbc.connect('FILEDSN=c:\\users\\me\\mydbserver.dsn')
:
import sqlalchemy as sa
engine = sa.create_engine('mssql+pyodbc://c/users/me/mydbserver.dsn/mydbname')
create_engine
方法は、実際に接続を設定し、成功しますが、 IIFはありません私は実際に(engine.table_names()
のような)接続をセットアップするためにsqlalchemyを実行する何かを試して、しばらく時間がかかるが、このエラーを返します:
DBAPIError: (Error) ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect)') None None
実際にpythonによってどの接続文字列がsqlalchemyに渡されているかを確認する方法がわかりません。私は正常にSQLiteとMySQLで同じsqlalchemyクラスを使用している。
ありがとうございます!
ありがとうございました。 SQL Serverのインスタンスは、私が作業しているマシン上にない唯一のインスタンスなので、ここで面白いことが起こっているかどうかはわかりませんでした。あなたがリストに載っていることをちょっと拡張するだけです(SQL Serverインスタンスの名前は明白です) - sa.create_engine( 'mssql + pyodbc:// [machinename] \\ [servername]/[database]') ' –
名前を付ける必要はありません。実際には、「デフォルト・インスタンス」として構成されたSQL Serverインスタンスに接続して使用する方が簡単です。 1つのサーバーで複数のSQL Serverインスタンスをホストする場合は、名前付きインスタンスが必要です。 – marr75