Archive for 2月, 2013

  1. Hello, ODP.NET(Nemerle) World!

    Posted on 2月 28th, 2013 by cx20

    ODP.NET(Nemerle)

    ODP.NET(Oracle Data Provider for .NET)は、.NET ベースの Oracle Database 接続用 API である。ODAC(Oracle Data Access Component)と呼ばれるパッケージに含まれる。
    .NET 環境での Oracle Database 用データプロバイダとしては、マイクロソフト社が提供する「Microsoft Oracle Client」とオラクル社が提供する「ODP.NET」があるが、現在、「Microsoft Oracle Client」はマイクロソフト社自身が非推奨としており、今後は ODP.NET の使用が推奨されている。

    データプロバイダ 説明
    System.Data.OracleClient .NET Framework Data Provider for Oracle
    Oracle.DataAccess.Client Oracle Data Provider for .NET

    ソースコード(Nemerle + ODP.NET + Oracle)

    using System;
    using Oracle.DataAccess.Client;
     
    class Hello
    {
        public static Main() : void {
            def conStr = "Data Source=ORCL;User ID=scott;Password=tiger";
            def sqlStr = "SELECT 'Hello, ODP.NET World!' AS Message FROM DUAL";
     
            def con = OracleConnection(conStr);
            def cmd = OracleCommand(sqlStr, con);
            con.Open();
            def reader = cmd.ExecuteReader();
            while( reader.Read() )
            {
                Console.WriteLine( reader.GetName(0) );
                Console.WriteLine( "---------------------" );
                Console.WriteLine( reader[0] );
            }
            reader.Close();
            con.Close();
        }
    }

    コンパイル方法

    C:¥> ncc -o Hello.exe -r:Oracle.DataAccess Hello.n

    実行結果

    MESSAGE
    ---------------------
    Hello, ODP.NET World!
  2. Hello, ADO.NET(Nemerle) World!

    Posted on 2月 27th, 2013 by cx20

    ADO.NET(Nemerle)

    ADO.NET(ActiveX Data Objects .NET)は、ADO の後継で .NET ベースの DBMS 接続用 API である。
    .NET データプロバイダを介することで様々な DBMS への接続が可能となっている。
    .NET Framework 標準で使用できる .NET データプロバイダとしては、以下のようなプロバイダがある。

    データプロバイダ名 説明
    System.Data.SqlClient Microsoft SQL Server
    System.Data.OleDb OLE DB
    System.Data.Odbc ODBC
    System.Data.OracleClient Oracle

    ソースコード(Nemerle + ADO.NET + OLE DB + Jet データベース)

    using System;
    using System.Data.OleDb;
     
    class Hello
    {
        public static Main() : void {
            def conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=hello.mdb";
            def sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message";
     
            def con = OleDbConnection(conStr);
            def cmd = OleDbCommand(sqlStr, con);
            con.Open();
            def reader = cmd.ExecuteReader();
            while( reader.Read() )
            {
                Console.WriteLine( reader.GetName(0) );
                Console.WriteLine( "---------------------" );
                Console.WriteLine( reader[0] );
            }
            reader.Close();
            con.Close();
        }
    }

    ソースコード(Nemerle + ADO.NET + OLE DB + ACE データベース)

    using System;
    using System.Data.OleDb;
     
    class Hello
    {
        public static Main() : void {
            def conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=hello.accdb;";
            def sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message";
     
            def con = OleDbConnection(conStr);
            def cmd = OleDbCommand(sqlStr, con);
            con.Open();
            def reader = cmd.ExecuteReader();
            while( reader.Read() )
            {
                Console.WriteLine( reader.GetName(0) );
                Console.WriteLine( "---------------------" );
                Console.WriteLine( reader[0] );
            }
            reader.Close();
            con.Close();
        }
    }

    ソースコード(Nemerle + ADO.NET + SQL Server)

    using System;
    using System.Data.SqlClient;
     
    class Hello
    {
        public static Main() : void {
            def conStr = "SERVER=(local);DATABASE=master;UID=sa;PWD=P@ssW0rd";
            def sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message";
     
            def con = SqlConnection(conStr);
            def cmd = SqlCommand(sqlStr, con);
            con.Open();
            def reader = cmd.ExecuteReader();
            while( reader.Read() )
            {
                Console.WriteLine( reader.GetName(0) );
                Console.WriteLine( "---------------------" );
                Console.WriteLine( reader[0] );
            }
            reader.Close();
            con.Close();
        }
    }

    ソースコード(Nemerle + ADO.NET + Oracle)

    using System;
    using System.Data.OracleClient;
     
    class Hello
    {
        public static Main() : void {
            def conStr = "Data Source=ORCL;User ID=scott;Password=tiger";
            def sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message FROM DUAL";
     
            def con = OracleConnection(conStr);
            def cmd = OracleCommand(sqlStr, con);
            con.Open();
            def reader = cmd.ExecuteReader();
            while( reader.Read() )
            {
                Console.WriteLine( reader.GetName(0) );
                Console.WriteLine( "---------------------" );
                Console.WriteLine( reader[0] );
            }
            reader.Close();
            con.Close();
        }
    }

    ソースコード(Nemerle + ADO.NET + ODBC + MySQL)

    using System;
    using System.Data.Odbc;
     
    class Hello
    {
        public static Main() : void {
            def conStr = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;UID=root;PWD=P@ssW0rd";
            def sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message";
     
            def con = OdbcConnection(conStr);
            def cmd = OdbcCommand(sqlStr, con);
            con.Open();
            def reader = cmd.ExecuteReader();
            while( reader.Read() )
            {
                Console.WriteLine( reader.GetName(0) );
                Console.WriteLine( "---------------------" );
                Console.WriteLine( reader[0] );
            }
            reader.Close();
            con.Close();
        }
    }

    コンパイル方法(32bit OLE DB 使用時)

    C:¥> ncc -o Hello.exe -r:System.Data -platform:x86 Hello.n

    コンパイル方法(64bit OLE DB 使用時)

    C:¥> ncc -o Hello.exe -r:System.Data -platform:x86 Hello.n

    コンパイル方法(上記以外)

    C:¥> ncc -o Hello.exe -r:System.Data Hello.n

    実行結果

    Message
    ---------------------
    Hello, ADO.NET World!
  3. Hello, ODP.NET(Boo) World!

    Posted on 2月 26th, 2013 by cx20

    ODP.NET(Boo)

    ODP.NET(Oracle Data Provider for .NET)は、.NET ベースの Oracle Database 接続用 API である。ODAC(Oracle Data Access Component)と呼ばれるパッケージに含まれる。
    .NET 環境での Oracle Database 用データプロバイダとしては、マイクロソフト社が提供する「Microsoft Oracle Client」とオラクル社が提供する「ODP.NET」があるが、現在、「Microsoft Oracle Client」はマイクロソフト社自身が非推奨としており、今後は ODP.NET の使用が推奨されている。

    データプロバイダ 説明
    System.Data.OracleClient .NET Framework Data Provider for Oracle
    Oracle.DataAccess.Client Oracle Data Provider for .NET

    ソースコード(Boo + ODP.NET + Oracle)

    import System
    import Oracle.DataAccess.Client
     
    [STAThread]
    def Main(argv as (string)):
        conStr = "Data Source=ORCL;User ID=scott;Password=tiger"
        sqlStr = "SELECT 'Hello, ODP.NET World!' AS Message FROM DUAL"
     
        con = OracleConnection(conStr)
        cmd = OracleCommand(sqlStr, con)
        con.Open()
     
        reader = cmd.ExecuteReader()
        while reader.Read():
            Console.WriteLine( reader.GetName(0) )
            Console.WriteLine( "---------------------" )
            Console.WriteLine( reader.GetValue(0) )
     
        reader.Close()
        con.Close()

    コンパイル方法

    C:¥> booc Hello.boo

    実行結果

    MESSAGE
    ---------------------
    Hello, ODP.NET World!
  4. Hello, ADO.NET(Boo) World!

    Posted on 2月 25th, 2013 by cx20

    ADO.NET(Boo)

    ADO.NET(ActiveX Data Objects .NET)は、ADO の後継で .NET ベースの DBMS 接続用 API である。
    .NET データプロバイダを介することで様々な DBMS への接続が可能となっている。
    .NET Framework 標準で使用できる .NET データプロバイダとしては、以下のようなプロバイダがある。

    データプロバイダ名 説明
    System.Data.SqlClient Microsoft SQL Server
    System.Data.OleDb OLE DB
    System.Data.Odbc ODBC
    System.Data.OracleClient Oracle

    ソースコード(Boo + ADO.NET + OLE DB + Jet データベース)

    import System
    import System.Data.OleDb
     
    [STAThread]
    def Main(argv as (string)):
        conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=hello.mdb;"
        sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
     
        con = OleDbConnection(conStr)
        cmd = OleDbCommand(sqlStr, con)
        con.Open()
     
        reader = cmd.ExecuteReader()
        while reader.Read():
            Console.WriteLine( reader.GetName(0) )
            Console.WriteLine( "---------------------" )
            Console.WriteLine( reader.GetValue(0) )
     
        reader.Close()
        con.Close()

    ソースコード(Boo + ADO.NET + OLE DB + ACE データベース)

    import System
    import System.Data.OleDb
     
    [STAThread]
    def Main(argv as (string)):
        conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=hello.accdb;"
        sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
     
        con = OleDbConnection(conStr)
        cmd = OleDbCommand(sqlStr, con)
        con.Open()
     
        reader = cmd.ExecuteReader()
        while reader.Read():
            Console.WriteLine( reader.GetName(0) )
            Console.WriteLine( "---------------------" )
            Console.WriteLine( reader.GetValue(0) )
     
        reader.Close()
        con.Close()

    ソースコード(Boo + ADO.NET + SQL Server)

    import System
    import System.Data.SqlClient
     
    [STAThread]
    def Main(argv as (string)):
        conStr = "SERVER=(local);DATABASE=master;UID=sa;PWD=P@ssW0rd;"
        sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
     
        con = SqlConnection(conStr)
        cmd = SqlCommand(sqlStr, con)
        con.Open()
     
        reader = cmd.ExecuteReader()
        while reader.Read():
            Console.WriteLine( reader.GetName(0) )
            Console.WriteLine( "---------------------" )
            Console.WriteLine( reader.GetValue(0) )
     
        reader.Close()
        con.Close()

    ソースコード(Boo + ADO.NET + Oracle)

    import System
    import System.Data.OracleClient
     
    [STAThread]
    def Main(argv as (string)):
        conStr = "Data Source=ORCL;User ID=scott;Password=tiger"
        sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message FROM DUAL"
     
        con = OracleConnection(conStr)
        cmd = OracleCommand(sqlStr, con)
        con.Open()
     
        reader = cmd.ExecuteReader()
        while reader.Read():
            Console.WriteLine( reader.GetName(0) )
            Console.WriteLine( "---------------------" )
            Console.WriteLine( reader.GetValue(0) )
     
        reader.Close()
        con.Close()

    ソースコード(Boo + ADO.NET + ODBC + MySQL)

    import System
    import System.Data.Odbc
     
    [STAThread]
    def Main(argv as (string)):
        conStr = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;UID=root;PWD=P@ssW0rd"
        sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
     
        con = OdbcConnection(conStr)
        cmd = OdbcCommand(sqlStr, con)
        con.Open()
     
        reader = cmd.ExecuteReader()
        while reader.Read():
            Console.WriteLine( reader.GetName(0) )
            Console.WriteLine( "---------------------" )
            Console.WriteLine( reader.GetValue(0) )
     
        reader.Close()
        con.Close()

    コンパイル方法(32bit OLE DB 使用時)

    C:¥> booc -platform:x86 Hello.boo

    コンパイル方法(64bit OLE DB 使用時)

    C:¥> booc -platform:x64 Hello.boo

    コンパイル方法(上記以外)

    C:¥> booc Hello.boo

    実行結果

    Message
    ---------------------
    Hello, ADO.NET World!
  5. Hello, ODP.NET(Cobra) World!

    Posted on 2月 22nd, 2013 by cx20

    ODP.NET(Cobra)

    ODP.NET(Oracle Data Provider for .NET)は、.NET ベースの Oracle Database 接続用 API である。ODAC(Oracle Data Access Component)と呼ばれるパッケージに含まれる。
    .NET 環境での Oracle Database 用データプロバイダとしては、マイクロソフト社が提供する「Microsoft Oracle Client」とオラクル社が提供する「ODP.NET」があるが、現在、「Microsoft Oracle Client」はマイクロソフト社自身が非推奨としており、今後は ODP.NET の使用が推奨されている。

    データプロバイダ 説明
    System.Data.OracleClient .NET Framework Data Provider for Oracle
    Oracle.DataAccess.Client Oracle Data Provider for .NET

    ソースコード(Cobra + ODP.NET + Oracle)

    use System
    use System.Data
    use Oracle.DataAccess.Client
     
    class Program
        def main is shared
            conStr = "Data Source=ORCL;User ID=scott;Password=tiger"
            sqlStr = "SELECT 'Hello, ODP.NET World!' AS Message FROM DUAL"
     
            con = OracleConnection(conStr)
            cmd = OracleCommand(sqlStr, con)
            con.open()
     
            reader = cmd.executeReader()
            while reader.read()
                Console.writeLine( reader.getName(0) )
                Console.writeLine( "---------------------" )
                Console.writeLine( reader.getValue(0) )
     
            reader.close()
            con.close()

    コンパイル方法

    C:¥> cobra -compile -reference:Oracle.DataAccess.dll Hello.cobra

    実行結果

    MESSAGE
    ---------------------
    Hello, ODP.NET World!
  6. Hello, ADO.NET(Cobra) World!

    Posted on 2月 21st, 2013 by cx20

    ADO.NET(Cobra)

    ADO.NET(ActiveX Data Objects .NET)は、ADO の後継で .NET ベースの DBMS 接続用 API である。
    .NET データプロバイダを介することで様々な DBMS への接続が可能となっている。
    .NET Framework 標準で使用できる .NET データプロバイダとしては、以下のようなプロバイダがある。

    データプロバイダ名 説明
    System.Data.SqlClient Microsoft SQL Server
    System.Data.OleDb OLE DB
    System.Data.Odbc ODBC
    System.Data.OracleClient Oracle

    ソースコード(Cobra + ADO.NET + OLE DB + Jet データベース)

    use System
    use System.Data
    use System.Data.OleDb
     
    class Program
        def main is shared
            conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=hello.mdb;"
            sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
     
            con = OleDbConnection(conStr)
            cmd = OleDbCommand(sqlStr, con)
            con.open()
     
            reader = cmd.executeReader()
            while reader.read()
                Console.writeLine( reader.getName(0) )
                Console.writeLine( "---------------------" )
                Console.writeLine( reader.getValue(0) )
     
            reader.close()
            con.close()

    ソースコード(Cobra + ADO.NET + OLE DB + ACE データベース)

    use System
    use System.Data
    use System.Data.OleDb
     
    class Program
        def main is shared
            conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=hello.mdb;"
            sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
     
            con = OleDbConnection(conStr)
            cmd = OleDbCommand(sqlStr, con)
            con.open()
     
            reader = cmd.executeReader()
            while reader.read()
                Console.writeLine( reader.getName(0) )
                Console.writeLine( "---------------------" )
                Console.writeLine( reader.getValue(0) )
     
            reader.close()
            con.close()

    ソースコード(Cobra + ADO.NET + SQL Server)

    use System
    use System.Data
    use System.Data.SqlClient
     
    class Program
        def main is shared
            conStr = "SERVER=(local);DATABASE=master;UID=sa;PWD=P@ssW0rd;"
            sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
     
            con = SqlConnection(conStr)
            cmd = SqlCommand(sqlStr, con)
            con.open()
     
            reader = cmd.executeReader()
            while reader.read()
                Console.writeLine( reader.getName(0) )
                Console.writeLine( "---------------------" )
                Console.writeLine( reader.getValue(0) )
     
            reader.close()
            con.close()

    ソースコード(Cobra + ADO.NET + Oracle)

    use System
    use System.Data
    use System.Data.OracleClient
     
    class Program
        def main is shared
            conStr = "Data Source=ORCL;User ID=scott;Password=tiger"
            sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message FROM DUAL"
     
            con = OracleConnection(conStr)
            cmd = OracleCommand(sqlStr, con)
            con.open()
     
            reader = cmd.executeReader()
            while reader.read()
                Console.writeLine( reader.getName(0) )
                Console.writeLine( "---------------------" )
                Console.writeLine( reader.getValue(0) )
     
            reader.close()
            con.close()

    ソースコード(Cobra + ADO.NET + ODBC + MySQL)

    use System
    use System.Data
    use System.Data.Odbc
     
    class Program
        def main is shared
            conStr = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;UID=root;PWD=P@ssW0rd"
            sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
     
            con = OdbcConnection(conStr)
            cmd = OdbcCommand(sqlStr, con)
            con.open()
     
            reader = cmd.executeReader()
            while reader.read()
                Console.writeLine( reader.getName(0) )
                Console.writeLine( "---------------------" )
                Console.writeLine( reader.getValue(0) )
     
            reader.close()
            con.close()

    コンパイル方法(32bit OLE DB 使用時)

    C:¥> cobra -compile -sharp-args:"/platform:x86" Hello.cobra

    コンパイル方法(上記以外)

    C:¥> cobra -compile Hello.cobra

    実行結果

    Message
    ---------------------
    Hello, ADO.NET World!
  7. Hello, ODP.NET(Phalanger) World!

    Posted on 2月 20th, 2013 by cx20

    ODP.NET(Phalanger)

    ODP.NET(Oracle Data Provider for .NET)は、.NET ベースの Oracle Database 接続用 API である。ODAC(Oracle Data Access Component)と呼ばれるパッケージに含まれる。
    .NET 環境での Oracle Database 用データプロバイダとしては、マイクロソフト社が提供する「Microsoft Oracle Client」とオラクル社が提供する「ODP.NET」があるが、現在、「Microsoft Oracle Client」はマイクロソフト社自身が非推奨としており、今後は ODP.NET の使用が推奨されている。

    データプロバイダ 説明
    System.Data.OracleClient .NET Framework Data Provider for Oracle
    Oracle.DataAccess.Client Oracle Data Provider for .NET

    ソースコード(Phalanger + ODP.NET + Oracle)

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <phpNet>
            <classLibrary>
                <add assembly="mscorlib" />
                <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                <add assembly="Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86" />
            </classLibrary>
        </phpNet>
    </configuration>
    <?
    use System;
    use OracleDataAccessClient;
     
    class Hello
    {
        static function Main()
        {
            $conStr = "Data Source=ORCL;User ID=scott;Password=tiger";
            $sqlStr = "SELECT 'Hello, ODP.NET World!' AS Message FROM DUAL";
     
            $con = new OracleDataAccessClientOracleConnection($conStr);
            $cmd = new OracleDataAccessClientOracleCommand($sqlStr, $con);
            $con->Open();
            $reader = $cmd->ExecuteReader();
            while ($reader->Read())
            {
                SystemConsole::WriteLine( $reader->GetName(0) );
                SystemConsole::WriteLine( "---------------------" );
                SystemConsole::WriteLine( $reader->GetValue(0) );
            }
            $reader->Close();
            $con->Close();
        }
    }
    ?>

    コンパイル方法

    C:¥> phpc /pure Hello.php

    実行結果

    MESSAGE
    ---------------------
    Hello, ODP.NET World!
  8. Hello, ADO.NET(Phalanger) World!

    Posted on 2月 19th, 2013 by cx20

    ADO.NET(Phalanger)

    ADO.NET(ActiveX Data Objects .NET)は、ADO の後継で .NET ベースの DBMS 接続用 API である。
    .NET データプロバイダを介することで様々な DBMS への接続が可能となっている。
    .NET Framework 標準で使用できる .NET データプロバイダとしては、以下のようなプロバイダがある。

    データプロバイダ名 説明
    System.Data.SqlClient Microsoft SQL Server
    System.Data.OleDb OLE DB
    System.Data.Odbc ODBC
    System.Data.OracleClient Oracle

    ソースコード(Phalanger + ADO.NET + OLE DB + Jet データベース)

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <phpNet>
            <classLibrary>
                <add assembly="mscorlib" />
                <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
            </classLibrary>
        </phpNet>
    </configuration>
    <?
    use System;
    use SystemDataOleDb;
     
    class Hello
    {
        static function Main()
        {
            $conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=hello.mdb";
            $sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message";
     
            $con = new SystemDataOleDbOleDbConnection($conStr);
            $cmd = new SystemDataOleDbOleDbCommand($sqlStr, $con);
            $con->Open();
            $reader = $cmd->ExecuteReader();
            while ($reader->Read())
            {
                SystemConsole::WriteLine( $reader->GetName(0) );
                SystemConsole::WriteLine( "---------------------" );
                SystemConsole::WriteLine( $reader->GetValue(0) );
            }
            $reader->Close();
            $con->Close();
        }
    }
    ?>

    ソースコード(Phalanger + ADO.NET + OLE DB + ACE データベース)

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <phpNet>
            <classLibrary>
                <add assembly="mscorlib" />
                <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
            </classLibrary>
        </phpNet>
    </configuration>
    <?
    use System;
    use SystemDataOleDb;
     
    class Hello
    {
        static function Main()
        {
            $conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=.\hello.accdb";
            $sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message";
     
            $con = new SystemDataOleDbOleDbConnection($conStr);
            $cmd = new SystemDataOleDbOleDbCommand($sqlStr, $con);
            $con->Open();
            $reader = $cmd->ExecuteReader();
            while ($reader->Read())
            {
                SystemConsole::WriteLine( $reader->GetName(0) );
                SystemConsole::WriteLine( "---------------------" );
                SystemConsole::WriteLine( $reader->GetValue(0) );
            }
            $reader->Close();
            $con->Close();
        }
    }
    ?>

    ソースコード(Phalanger + ADO.NET + SQL Server)

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <phpNet>
            <classLibrary>
                <add assembly="mscorlib" />
                <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
            </classLibrary>
        </phpNet>
    </configuration>
    <?
    use System;
    use SystemDataSqlClient;
     
    class Hello
    {
        static function Main()
        {
            $conStr = "SERVER=(local);DATABASE=master;UID=sa;PWD=P@ssW0rd";
            $sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message";
     
            $con = new SystemDataSqlClientSqlConnection($conStr);
            $cmd = new SystemDataSqlClientSqlCommand($sqlStr, $con);
            $con->Open();
            $reader = $cmd->ExecuteReader();
            while ($reader->Read())
            {
                SystemConsole::WriteLine( $reader->GetName(0) );
                SystemConsole::WriteLine( "---------------------" );
                SystemConsole::WriteLine( $reader->GetValue(0) );
            }
            $reader->Close();
            $con->Close();
        }
    }
    ?>

    ソースコード(Phalanger + ADO.NET + Oracle)

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <phpNet>
            <classLibrary>
                <add assembly="mscorlib" />
                <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                <add assembly="System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
            </classLibrary>
        </phpNet>
    </configuration>
    <?
    use System;
    use SystemDataOracleClient;
     
    class Hello
    {
        static function Main()
        {
            $conStr = "Data Source=ORCL;User ID=scott;Password=tiger";
            $sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message FROM DUAL";
     
            $con = new SystemDataOracleClientOracleConnection($conStr);
            $cmd = new SystemDataOracleClientOracleCommand($sqlStr, $con);
            $con->Open();
            $reader = $cmd->ExecuteReader();
            while ($reader->Read())
            {
                SystemConsole::WriteLine( $reader->GetName(0) );
                SystemConsole::WriteLine( "---------------------" );
                SystemConsole::WriteLine( $reader->GetValue(0) );
            }
            $reader->Close();
            $con->Close();
        }
    }
    ?>

    ソースコード(Phalanger + ADO.NET + ODBC + MySQL)

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <phpNet>
            <classLibrary>
                <add assembly="mscorlib" />
                <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
            </classLibrary>
        </phpNet>
    </configuration>
    <?
    use System;
    use System\Data\Odbc;
     
    class Hello
    {
        static function Main()
        {
            $conStr = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;UID=root;PWD=P@ssW0rd";
            $sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message";
     
            $con = new System\Data\Odbc\OdbcConnection($conStr);
            $cmd = new System\Data\Odbc\OdbcCommand($sqlStr, $con);
            $con->Open();
            $reader = $cmd->ExecuteReader();
            while ($reader->Read())
            {
                System\Console::WriteLine( $reader->GetName(0) );
                System\Console::WriteLine( "---------------------" );
                System\Console::WriteLine( $reader->GetValue(0) );
            }
            $reader->Close();
            $con->Close();
        }
    }
    ?>

    コンパイル方法

    C:¥> phpc /pure Hello.php

    実行結果

    Message
    ---------------------
    Hello, ADO.NET World!
  9. Hello, ODP.NET(ClojureCLR) World!

    Posted on 2月 18th, 2013 by cx20

    ODP.NET(ClojureCLR)

    ODP.NET(Oracle Data Provider for .NET)は、.NET ベースの Oracle Database 接続用 API である。ODAC(Oracle Data Access Component)と呼ばれるパッケージに含まれる。
    .NET 環境での Oracle Database 用データプロバイダとしては、マイクロソフト社が提供する「Microsoft Oracle Client」とオラクル社が提供する「ODP.NET」があるが、現在、「Microsoft Oracle Client」はマイクロソフト社自身が非推奨としており、今後は ODP.NET の使用が推奨されている。

    データプロバイダ 説明
    System.Data.OracleClient .NET Framework Data Provider for Oracle
    Oracle.DataAccess.Client Oracle Data Provider for .NET

    ソースコード(ClojureCLR + ODP.NET + Oracle)

    (System.Reflection.Assembly/LoadWithPartialName "System.Data")
    (System.Reflection.Assembly/LoadWithPartialName "Oracle.DataAccess")
     
    (import '(Oracle.DataAccess.Client OracleConnection))
    (import '(Oracle.DataAccess.Client OracleCommand))
    (import '(Oracle.DataAccess.Client OracleDataReader))
     
    (def conStr "Data Source=ORCL;User ID=scott;Password=tiger")
    (def sqlStr "SELECT 'Hello, ODP.NET World!' AS Message FROM DUAL")
    (def con (OracleConnection. conStr))
    (def cmd (OracleCommand. sqlStr con))
    (.Open con)
    (def reader (.ExecuteReader cmd))
    (if (.Read reader)
        (do
            (System.Console/WriteLine (.GetName reader 0))
            (System.Console/WriteLine "---------------------")
            (System.Console/WriteLine (.GetValue reader 0))
        )
    )
    (.Close reader)
    (.Close con)

    コンパイル方法

    C:¥> Clojure.Main hello.clj

    実行結果

    MESSAGE
    ---------------------
    Hello, ODP.NET World!
  10. Hello, ADO.NET(ClojureCLR) World!

    Posted on 2月 17th, 2013 by cx20

    ADO.NET(ClojureCLR)

    ADO.NET(ActiveX Data Objects .NET)は、ADO の後継で .NET ベースの DBMS 接続用 API である。
    .NET データプロバイダを介することで様々な DBMS への接続が可能となっている。
    .NET Framework 標準で使用できる .NET データプロバイダとしては、以下のようなプロバイダがある。

    データプロバイダ名 説明
    System.Data.SqlClient Microsoft SQL Server
    System.Data.OleDb OLE DB
    System.Data.Odbc ODBC
    System.Data.OracleClient Oracle

    ソースコード(ClojureCLR + ADO.NET + OLE DB + Jet データベース)

    (System.Reflection.Assembly/LoadWithPartialName "System.Data")
     
    (import '(System.Data.OleDb OleDbConnection))
    (import '(System.Data.OleDb OleDbCommand))
    (import '(System.Data.OleDb OleDbDataReader))
     
    (def conStr "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=hello.mdb")
    (def sqlStr "SELECT 'Hello, ADO.NET World!' AS Message")
    (def con (OleDbConnection. conStr))
    (def cmd (OleDbCommand. sqlStr con))
    (.Open con)
    (def reader (.ExecuteReader cmd))
    (if (.Read reader)
        (do
            (System.Console/WriteLine (.GetName reader 0))
            (System.Console/WriteLine "---------------------")
            (System.Console/WriteLine (.GetValue reader 0))
        )
    )
    (.Close reader)
    (.Close con)

    ソースコード(ClojureCLR + ADO.NET + OLE DB + ACE データベース)

    (System.Reflection.Assembly/LoadWithPartialName "System.Data")
     
    (import '(System.Data.OleDb OleDbConnection))
    (import '(System.Data.OleDb OleDbCommand))
    (import '(System.Data.OleDb OleDbDataReader))
     
    (def conStr "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=hello.accdb")
    (def sqlStr "SELECT 'Hello, ADO.NET World!' AS Message")
    (def con (OleDbConnection. conStr))
    (def cmd (OleDbCommand. sqlStr con))
    (.Open con)
    (def reader (.ExecuteReader cmd))
    (if (.Read reader)
        (do
            (System.Console/WriteLine (.GetName reader 0))
            (System.Console/WriteLine "---------------------")
            (System.Console/WriteLine (.GetValue reader 0))
        )
    )
    (.Close reader)
    (.Close con)

    ソースコード(ClojureCLR + ADO.NET + SQL Server)

    (System.Reflection.Assembly/LoadWithPartialName "System.Data")
     
    (import '(System.Data.SqlClient SqlConnection))
    (import '(System.Data.SqlClient SqlCommand))
    (import '(System.Data.SqlClient SqlDataReader))
     
    (def conStr "SERVER=(local);DATABASE=master;UID=sa;PWD=P@ssW0rd")
    (def sqlStr "SELECT 'Hello, ADO.NET World!' AS Message")
    (def con (SqlConnection. conStr))
    (def cmd (SqlCommand. sqlStr con))
    (.Open con)
    (def reader (.ExecuteReader cmd))
    (if (.Read reader)
        (do
            (System.Console/WriteLine (.GetName reader 0))
            (System.Console/WriteLine "---------------------")
            (System.Console/WriteLine (.GetValue reader 0))
        )
    )
    (.Close reader)
    (.Close con)

    ソースコード(ClojureCLR + ADO.NET + Oracle)

    (System.Reflection.Assembly/LoadWithPartialName "System.Data")
    (System.Reflection.Assembly/LoadWithPartialName "System.Data.OracleClient")
     
    (import '(System.Data.OracleClient OracleConnection))
    (import '(System.Data.OracleClient OracleCommand))
    (import '(System.Data.OracleClient OracleDataReader))
     
    (def conStr "Data Source=ORCL;User ID=scott;Password=tiger")
    (def sqlStr "SELECT 'Hello, ADO.NET World!' AS Message FROM DUAL")
    (def con (OracleConnection. conStr))
    (def cmd (OracleCommand. sqlStr con))
    (.Open con)
    (def reader (.ExecuteReader cmd))
    (if (.Read reader)
        (do
            (System.Console/WriteLine (.GetName reader 0))
            (System.Console/WriteLine "---------------------")
            (System.Console/WriteLine (.GetValue reader 0))
        )
    )
    (.Close reader)
    (.Close con)

    ソースコード(ClojureCLR + ADO.NET + ODBC + MySQL)

    (System.Reflection.Assembly/LoadWithPartialName "System.Data")
     
    (import '(System.Data.Odbc OdbcConnection))
    (import '(System.Data.Odbc OdbcCommand))
    (import '(System.Data.Odbc OdbcDataReader))
     
    (def conStr "Driver={MySQL ODBC 5.1 Driver};Server=localhost;UID=root;PWD=P@ssW0rd")
    (def sqlStr "SELECT 'Hello, ADO.NET World!' AS Message FROM DUAL")
    (def con (OdbcConnection. conStr))
    (def cmd (OdbcCommand. sqlStr con))
    (.Open con)
    (def reader (.ExecuteReader cmd))
    (if (.Read reader)
        (do
            (System.Console/WriteLine (.GetName reader 0))
            (System.Console/WriteLine "---------------------")
            (System.Console/WriteLine (.GetValue reader 0))
        )
    )
    (.Close reader)
    (.Close con)

    実行方法

    C:¥> Clojure.Main hello.clj

    実行結果

    Message
    ---------------------
    Hello, ADO.NET World!