Hello, ADO(Perl) World!
Posted on 9月 19th, 2012 by cx20
ADO(Perl)
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 データベース |
ソースコード(Perl + ADO + OLEDB + Jet データベース)
use strict;
use Win32::OLE;
my $cn = Win32::OLE->new("ADODB.Connection");
$cn->Open( "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=.\hello.mdb" );
my $rs = $cn->Execute( "SELECT 'Hello, ADO World!' AS Message" );
while ( !$rs->EOF ) {
print $rs->Fields(0)->{Name}, "n";
print "-------------------n";
print $rs->Fields(0)->{Value}, "n";
$rs->MoveNext();
}
$rs->Close();
$cn->Close(); |
use strict;
use Win32::OLE;
my $cn = Win32::OLE->new("ADODB.Connection");
$cn->Open( "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=.\hello.mdb" );
my $rs = $cn->Execute( "SELECT 'Hello, ADO World!' AS Message" );
while ( !$rs->EOF ) {
print $rs->Fields(0)->{Name}, "n";
print "-------------------n";
print $rs->Fields(0)->{Value}, "n";
$rs->MoveNext();
}
$rs->Close();
$cn->Close();
ソースコード(Perl + ADO + OLEDB + ACE データベース)
use strict;
use Win32::OLE;
my $cn = Win32::OLE->new("ADODB.Connection");
$cn->Open( "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source=.\hello.accdb" );
my $rs = $cn->Execute( "SELECT 'Hello, ADO World!' AS Message" );
while ( !$rs->EOF ) {
print $rs->Fields(0)->{Name}, "n";
print "-------------------n";
print $rs->Fields(0)->{Value}, "n";
$rs->MoveNext();
}
$rs->Close();
$cn->Close(); |
use strict;
use Win32::OLE;
my $cn = Win32::OLE->new("ADODB.Connection");
$cn->Open( "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source=.\hello.accdb" );
my $rs = $cn->Execute( "SELECT 'Hello, ADO World!' AS Message" );
while ( !$rs->EOF ) {
print $rs->Fields(0)->{Name}, "n";
print "-------------------n";
print $rs->Fields(0)->{Value}, "n";
$rs->MoveNext();
}
$rs->Close();
$cn->Close();
ソースコード(Perl + ADO + OLEDB + SQL Server)
use strict;
use Win32::OLE;
my $cn = Win32::OLE->new("ADODB.Connection");
$cn->Open( "PROVIDER=SQLOLEDB;SERVER=(local);DATABASE=master", "sa", "P@ssW0rd" );
my $rs = $cn->Execute( "SELECT 'Hello, ADO World!' AS Message" );
while ( !$rs->EOF ) {
print $rs->Fields(0)->{Name}, "n";
print "-------------------n";
print $rs->Fields(0)->{Value}, "n";
$rs->MoveNext();
}
$rs->Close();
$cn->Close(); |
use strict;
use Win32::OLE;
my $cn = Win32::OLE->new("ADODB.Connection");
$cn->Open( "PROVIDER=SQLOLEDB;SERVER=(local);DATABASE=master", "sa", "P@ssW0rd" );
my $rs = $cn->Execute( "SELECT 'Hello, ADO World!' AS Message" );
while ( !$rs->EOF ) {
print $rs->Fields(0)->{Name}, "n";
print "-------------------n";
print $rs->Fields(0)->{Value}, "n";
$rs->MoveNext();
}
$rs->Close();
$cn->Close();
ソースコード(Perl + ADO + OLEDB + Oracle)
use strict;
use Win32::OLE;
my $cn = Win32::OLE->new("ADODB.Connection");
$cn->Open( "PROVIDER=MSDAORA;Data Source=ORCL", "scott", "tiger" );
my $rs = $cn->Execute( "SELECT 'Hello, ADO World!' AS Message FROM DUAL" );
while ( !$rs->EOF ) {
print $rs->Fields(0)->{Name}, "n";
print "-------------------n";
print $rs->Fields(0)->{Value}, "n";
$rs->MoveNext();
}
$rs->Close();
$cn->Close(); |
use strict;
use Win32::OLE;
my $cn = Win32::OLE->new("ADODB.Connection");
$cn->Open( "PROVIDER=MSDAORA;Data Source=ORCL", "scott", "tiger" );
my $rs = $cn->Execute( "SELECT 'Hello, ADO World!' AS Message FROM DUAL" );
while ( !$rs->EOF ) {
print $rs->Fields(0)->{Name}, "n";
print "-------------------n";
print $rs->Fields(0)->{Value}, "n";
$rs->MoveNext();
}
$rs->Close();
$cn->Close();
実行方法(Windows)
実行結果
Message
-----------------
Hello, ADO World! |
Message
-----------------
Hello, ADO World!
Tags: ADO
Categories: ADO, Perl