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() |
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() |
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() |
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() |
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)
実行結果
Message
-----------------
Hello, ADO World! |
Message
-----------------
Hello, ADO World!
Tags: ADO
Categories: ADO, Python