Archive for 9月 25th, 2012
-
Hello, ADO(Python) World!
Posted on 9月 25th, 2012 by cx20
ADO(Python)
ADO(ActiveX Data Objects)は、マイクロソフト社が開発した COM ベースの DBMS 接続用 API である。
OLE DB プロバイダを介することで様々な DBMS への接続が可能となっている。
OLE DB プロバイダとしては、以下のようなプロバイダがある。いくつかが OS 標準で付属している他、追加インストールが可能である。プロバイダ名 表示名 説明 MSDASQL Microsoft OLE DB Provider for ODBC ODBC データベース Microsoft.Jet.OLEDB.4.0 Microsoft OLE DB Provider for Microsoft Jet Microsoft Jet データベース Microsoft.ACE.OLEDB.12.0 Microsoft Office 12.0 Access Database Engine OLE DB Provider Microsoft Access データベース SQLOLEDB Microsoft OLE DB Provider for SQL Server Microsoft SQL Server SQLNCLI10 SQL Server Native Client 10.0 Microsoft SQL Server MSDAORA Microsoft OLE DB Provider for Oracle Oracle データベース 以下は Python による ADO ライブラリの使用例となっている。
ソースコード(Python + ADO + OLEDB + Jet データベース)
import win32com.client cn = win32com.client.Dispatch('ADODB.Connection') cn.Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.hello.mdb" ) rs = cn.Execute( "SELECT 'Hello, ADO World!' AS Message" )[0] while not rs.EOF: print rs.Fields(0).Name print "-------------------" print rs.Fields(0).Value rs.MoveNext() rs.Close() cn.Close()
ソースコード(Python + ADO + OLEDB + ACE データベース)
import win32com.client cn = win32com.client.Dispatch('ADODB.Connection') cn.Open( "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=.hello.accdb" ) rs = cn.Execute( "SELECT 'Hello, ADO World!' AS Message" )[0] while not rs.EOF: print rs.Fields(0).Name print "-------------------" print rs.Fields(0).Value rs.MoveNext() rs.Close() cn.Close()
ソースコード(Python + ADO + OLEDB + SQL Server)
import win32com.client cn = win32com.client.Dispatch('ADODB.Connection') cn.Open( "Provider=SQLOLEDB;SERVER=(local);DATABASE=master", "sa", "P@ssW0rd" ) rs = cn.Execute( "SELECT 'Hello, ADO World!' AS Message" )[0] while not rs.EOF: print rs.Fields(0).Name print "-------------------" print rs.Fields(0).Value rs.MoveNext() rs.Close() cn.Close()
ソースコード(Python + ADO + OLEDB + Oracle)
import win32com.client cn = win32com.client.Dispatch('ADODB.Connection') cn.Open( "Provider=MSDAORA;Data Source=ORCL", "scott", "tiger" ) rs = cn.Execute( "SELECT 'Hello, ADO World!' AS Message FROM DUAL" )[0] while not rs.EOF: print rs.Fields(0).Name print "-------------------" print rs.Fields(0).Value rs.MoveNext() rs.Close() cn.Close()
実行方法(Windows)
C:¥> python hello.py
実行結果
Message ----------------- Hello, ADO World!