Sto provando a connettermi a un database di SQL Server 2012 utilizzando SQLAlchemy (con pyodbc) su Python 3.3 (Windows 7-64-bit). Sono in grado di connettermi usando pyodbc dritto ma non ho avuto successo con la connessione usando SQLAlchemy. Ho installato il file dsn per l'accesso al database.Connessione a SQL Server 2012 utilizzando sqlalchemy e pyodbc
mi collego con successo utilizzando pyodbc dritto come questo:
con = pyodbc.connect('FILEDSN=c:\\users\\me\\mydbserver.dsn')
Per sqlalchemy ho provato:
import sqlalchemy as sa
engine = sa.create_engine('mssql+pyodbc://c/users/me/mydbserver.dsn/mydbname')
Il metodo create_engine
in realtà non impostare la connessione e riesce, ma iSe Provo qualcosa che fa sì che sqlalchemy configuri effettivamente la connessione (come engine.table_names()
), ci vuole un po 'ma poi restituisce questo errore:
DBAPIError: (Error) ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect)') None None
Non sono sicuro di dove le cose stiano andando male sono come vedere quale stringa di connessione viene effettivamente passata a pyodbc da sqlalchemy. Ho usato con successo le stesse classi di sqlalchemy con SQLite e MySQL.
Grazie in anticipo!
Grazie. L'istanza di SQL Server è l'unica che non è sulla macchina su cui sto lavorando quindi non ero sicuro se ci fosse qualcosa di divertente da fare qui. Solo per espandere un po 'le punture elencate (poiché le istanze del server sql sono apparentemente denominate) - 'sa.create_engine (' mssql + pyodbc: // [nomecomputer] \\ [nomeserver]/[database] ')' –
Essi don essere nominati In realtà è più facile connettersi e utilizzare un'istanza del server SQL configurata come "istanza predefinita". Le istanze nominate sono richieste quando ospiterete istanze multiple di server SQL su un server. – marr75