SQL Server e Python
L'integrazione tra .NET e SQL Server è data per scontata: in questo articolo esploreremo invece come accedere a SQL Server da Python. Uno dei vantaggi di python è che è un linguaggio molto facile da imparare, con un notevole numero di librerie e un'ottima integrazione multi piattaforma. Oltre a ciò python offre un sistema di installazione rapido delle librerie (come Ruby e Perl).
Pyodbc: introduzione
Vi sono parecchie librerie odbc/SQLServer per python. Abbiamo deciso di presentare pyodbc.
Da Windows, potete installare pyodbc nel seguente modo:
[bash]$easy_install pyodbc
Searching for pyodbc
Reading http://pypi.python.org/simple/pyodbc/
Reading http://code.google.com/p/pyodbc
Reading http://code.google.com/p/pyodbc/downloads/list
Best match: pyodbc 2.1.8
Downloading http://pyodbc.googlecode.com/files/pyodbc-2.1.8.win32-py2.6.exe
Processing pyodbc-2.1.8.win32-py2.6.exe
creating 'c:\docume1\giorgig\impost1\temp\easy_install-53xdpl\pyodbc-2.1.8-py2.6-win32.egg' and adding 'c:\docume1\giorgig\impost1\temp\
easy_install-53xdpl\pyodbc-2.1.8-py2.6-win32.egg.tmp' to it
Moving pyodbc-2.1.8-py2.6-win32.egg to c:\python26\lib\site-packages
Adding pyodbc 2.1.8 to easy-install.pth file
Installed c:\python26\lib\site-packages\pyodbc-2.1.8-py2.6-win32.egg Processing dependencies for pyodbc Finished processing dependencies for pyodbc[/bash] Poi seguendo un semplice esempio, ecco come scoprire la somma di due numeri... [python]cs=r'DRIVER={SQL Server};SERVER=mypc\SQLEXPRESS;DATABASE=test1;UID=test1;PWD=test1'; cnxn = pyodbc.connect(cs); cursor = cnxn.cursor(); cursor.execute("SELECT 1+2"); print(str(cursor.fetchone()));[/python] Al momento non sembra esistere un modo semplice per connettersi alla versione embedded (compact) di SQL. Risulta molto comoda però l'integrazione con Excel, con sintassi del tipo: [python]pyodbc.connect("Driver={Microsoft Excel Driver (*.xls)}; Dbq=Sample.xls", autocommit=True)[/python] Conclusioni e letture ulteriori
Con la seguente libreria è possibile integrare python django e sql server.