Archive for the ‘.NET’ Category
-
Hello, ODP.NET(IronRuby) World!
Posted on 2月 14th, 2013 by cx20
ODP.NET(IronRuby)
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 ソースコード(IronRuby + ODP.NET + Oracle)
require 'mscorlib' require 'System' require 'System.Data' require 'Oracle.DataAccess' include System include System::Data include Oracle::DataAccess::Client conStr = "Data Source=ORCL;User ID=scott;Password=tiger" sqlStr = "SELECT 'Hello, ODP.NET World!' AS Message FROM DUAL" con = OracleConnection.new(conStr) cmd = OracleCommand.new(sqlStr, con) con.Open() reader = cmd.ExecuteReader() while reader.Read() do Console.WriteLine( reader.GetName(0) ) Console.WriteLine( "---------------------" ) Console.WriteLine( reader.GetValue(0) ) end reader.Close() con.Close()
コンパイル方法
C:¥> ir Hello.rb
実行結果
MESSAGE --------------------- Hello, ODP.NET World!
-
Hello, ADO.NET(IronRuby) World!
Posted on 2月 13th, 2013 by cx20
ADO.NET(IronRuby)
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 ソースコード(IronRuby + ADO.NET + OLE DB + Jet データベース)
require 'mscorlib' require 'System' require 'System.Data' include System include System::Data include System::Data::OleDb conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=hello.mdb;" sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message" con = OleDbConnection.new(conStr) cmd = OleDbCommand.new(sqlStr, con) con.Open() reader = cmd.ExecuteReader() while reader.Read() do Console.WriteLine( reader.GetName(0) ) Console.WriteLine( "---------------------" ) Console.WriteLine( reader.GetValue(0) ) end reader.Close() con.Close()
ソースコード(IronRuby + ADO.NET + OLE DB + ACE データベース)
require 'mscorlib' require 'System' require 'System.Data' include System include System::Data include System::Data::OleDb conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=hello.accdb;" sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message" con = OleDbConnection.new(conStr) cmd = OleDbCommand.new(sqlStr, con) con.Open() reader = cmd.ExecuteReader() while reader.Read() do Console.WriteLine( reader.GetName(0) ) Console.WriteLine( "---------------------" ) Console.WriteLine( reader.GetValue(0) ) end reader.Close() con.Close()
ソースコード(IronRuby + ADO.NET + SQL Server)
require 'mscorlib' require 'System' require 'System.Data' include System include System::Data include System::Data::SqlClient conStr = "SERVER=(local);DATABASE=master;UID=sa;PWD=P@ssW0rd;" sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message" con = SqlConnection.new(conStr) cmd = SqlCommand.new(sqlStr, con) con.Open() reader = cmd.ExecuteReader() while reader.Read() do Console.WriteLine( reader.GetName(0) ) Console.WriteLine( "---------------------" ) Console.WriteLine( reader.GetValue(0) ) end reader.Close() con.Close()
ソースコード(IronRuby + ADO.NET + Oracle)
require 'mscorlib' require 'System' require 'System.Data' require 'System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' include System include System::Data include System::Data::OracleClient conStr = "Data Source=ORCL;User ID=scott;Password=tiger" sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message FROM DUAL" con = OracleConnection.new(conStr) cmd = OracleCommand.new(sqlStr, con) con.Open() reader = cmd.ExecuteReader() while reader.Read() do Console.WriteLine( reader.GetName(0) ) Console.WriteLine( "---------------------" ) Console.WriteLine( reader.GetValue(0) ) end reader.Close() con.Close()
ソースコード(IronRuby + ADO.NET + ODBC + MySQL)
require 'mscorlib' require 'System' require 'System.Data' include System include System::Data::Odbc conStr = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;UID=root;PWD=P@ssW0rd" sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message" con = OdbcConnection.new(conStr) cmd = OdbcCommand.new(sqlStr, con) con.Open() reader = cmd.ExecuteReader() while reader.Read() do Console.WriteLine( reader.GetName(0) ) Console.WriteLine( "---------------------" ) Console.WriteLine( reader.GetValue(0) ) end reader.Close() con.Close()
実行方法(64bit OLE DB 使用時)
C:¥> ir64 Hello.rb
実行方法(上記以外)
C:¥> ir Hello.rb
実行結果
Message --------------------- Hello, ADO.NET World!
-
Hello, ODP.NET(IronPython) World!
Posted on 2月 12th, 2013 by cx20
ODP.NET(IronPython)
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 ソースコード(IronPython + ODP.NET + Oracle)
import clr clr.AddReference("System.Data") clr.AddReference("Oracle.DataAccess") from System import * from Oracle.DataAccess.Client import * 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:¥> ipy Hello.py
実行結果
MESSAGE --------------------- Hello, ODP.NET World!
-
Hello, ADO.NET(IronPython) World!
Posted on 2月 11th, 2013 by cx20
ADO.NET(IronPython)
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 ソースコード(IronPython + ADO.NET + OLE DB + Jet データベース)
import clr clr.AddReference("System.Data") from System import * from System.Data.OleDb import * 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()
ソースコード(IronPython + ADO.NET + OLE DB + ACE データベース)
import clr clr.AddReference("System.Data") from System import * from System.Data.OleDb import * 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()
ソースコード(IronPython + ADO.NET + SQL Server)
import clr clr.AddReference("System.Data") from System import * from System.Data.SqlClient import * 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()
ソースコード(IronPython + ADO.NET + Oracle)
import clr clr.AddReference("System.Data") clr.AddReference("System.Data.OracleClient") from System import * from System.Data.OracleClient import * 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()
ソースコード(IronPython + ADO.NET + ODBC + MySQL)
import clr clr.AddReference("System.Data") from System import * from System.Data.Odbc import * 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()
実行方法(64bit OLE DB 使用時)
C:¥> ipy64 Hello.py
実行方法(上記以外)
C:¥> ipy Hello.py
実行結果
Message --------------------- Hello, ADO.NET World!
-
Hello, COM(Oxygene) World!
Posted on 2月 10th, 2013 by cx20
COM(Oxygene)
COM(Component Object Model)はマイクロソフトの提唱するプログラム部品の仕様である。
COM を用いて開発された部品であれば言語を問わず利用することができる。
以下は Oxygene による COM クライアントの例となっている。ソースコード(実行時バインディング)
namespace hello; interface uses System, System.Reflection, System.Runtime.InteropServices; type Hello = class public class method Main(args: array of String): Integer; end; implementation class method Hello.Main(args: array of String): Integer; var objType: System.Type; shell: Object; param: array of Object; folder: Object; begin objType := System.Type.GetTypeFromProgID("Shell.Application"); shell := Activator.CreateInstance(objType); param := [ 0, "Hello, COM(Oxygene) World!", 0, 36 ]; folder := shell.GetType().InvokeMember( "BrowseForFolder", BindingFlags.InvokeMethod, nil, shell, param ); if folder nil then begin Marshal.ReleaseComObject(folder); end; Marshal.ReleaseComObject(shell); end; end.
コンパイル方法(実行時バインディング)
C:¥> oxygene Hello.pas
実行結果
+----------------------------------------+ |Browse For Folder [X]| +----------------------------------------+ | Hello, COM(Oxygene) Wolrd! | | | | +------------------------------------+ | | |[Windows] | | | | +[addins] | | | | +[AppCompat] | | | | +[AppPatch] | | | | +[assembly] | | | | : | | | | : | | | | : | | | +------------------------------------+ | | [Make New Folder] [ OK ] [Cancel] | +----------------------------------------+
-
Hello, COM(Nemerle) World!
Posted on 2月 9th, 2013 by cx20
COM(Nemerle)
COM(Component Object Model)はマイクロソフトの提唱するプログラム部品の仕様である。
COM を用いて開発された部品であれば言語を問わず利用することができる。
以下は Nemerle による COM クライアントの例となっている。ソースコード(実行時バインディング)
using System; using System.Reflection; using System.Runtime.InteropServices; class Hello { public static Main() : void { def objType = Type.GetTypeFromProgID("Shell.Application"); def shell = Activator.CreateInstance(objType); def hwnd = 0; def title = "Hello, COM(Nemerle) World!" : object; def option = 0; def rootFolder = 36; def param = array[ hwnd, title, option, rootFolder ]; def folder = shell.GetType().InvokeMember( "BrowseForFolder", BindingFlags.InvokeMethod, null, shell, param ); when (folder != null) { _ = Marshal.ReleaseComObject(folder); } _ = Marshal.ReleaseComObject(shell); } }
コンパイル方法(実行時バインディング)
C:¥> ncc -o Hello.exe Hello.n
実行結果
+----------------------------------------+ |Browse For Folder [X]| +----------------------------------------+ | Hello, COM(Nemerle) Wolrd! | | | | +------------------------------------+ | | |[Windows] | | | | +[addins] | | | | +[AppCompat] | | | | +[AppPatch] | | | | +[assembly] | | | | : | | | | : | | | | : | | | +------------------------------------+ | | [Make New Folder] [ OK ] [Cancel] | +----------------------------------------+
-
Hello, COM(Boo) World!
Posted on 2月 8th, 2013 by cx20
COM(Boo)
COM(Component Object Model)はマイクロソフトの提唱するプログラム部品の仕様である。
COM を用いて開発された部品であれば言語を問わず利用することができる。
以下は Boo による COM クライアントの例となっている。ソースコード(実行時バインディング)
import System import System.Reflection import System.Runtime.InteropServices [STAThread] def Main(argv as (string)): objType = Type.GetTypeFromProgID("Shell.Application") shell = Activator.CreateInstance(objType) param as (object) = ( 0, "Hello, COM(Boo) World!", 0, 36 ) folder = shell.GetType().InvokeMember( "BrowseForFolder", BindingFlags.InvokeMethod, null, shell, param ) if (folder != null): Marshal.ReleaseComObject(folder) Marshal.ReleaseComObject(shell)
コンパイル方法(実行時バインディング)
C:¥> booc Hello.boo
実行結果
+----------------------------------------+ |Browse For Folder [X]| +----------------------------------------+ | Hello, COM(Boo) Wolrd! | | | | +------------------------------------+ | | |[Windows] | | | | +[addins] | | | | +[AppCompat] | | | | +[AppPatch] | | | | +[assembly] | | | | : | | | | : | | | | : | | | +------------------------------------+ | | [Make New Folder] [ OK ] [Cancel] | +----------------------------------------+
-
Hello, COM(Cobra) World!
Posted on 2月 6th, 2013 by cx20
COM(Cobra)
COM(Component Object Model)はマイクロソフトの提唱するプログラム部品の仕様である。
COM を用いて開発された部品であれば言語を問わず利用することができる。
以下は Cobra による COM クライアントの例となっている。ソースコード(実行時バインディング)
use System use System.Reflection use System.Runtime.InteropServices class Program def main is shared objType = Type.getTypeFromProgID("Shell.Application") shell = Activator.createInstance(objType) param = @[ 0, "Hello, COM(Cobra) World!", 0, 36 ] folder = shell.getType.invokeMember( "BrowseForFolder", BindingFlags.InvokeMethod, nil, shell, param ) if folder nil Marshal.releaseComObject(folder) Marshal.releaseComObject(shell)
コンパイル方法(実行時バインディング)
C:¥> cobra -compile Hello.cobra
実行結果
+----------------------------------------+ |Browse For Folder [X]| +----------------------------------------+ | Hello, COM(Cobra) Wolrd! | | | | +------------------------------------+ | | |[Windows] | | | | +[addins] | | | | +[AppCompat] | | | | +[AppPatch] | | | | +[assembly] | | | | : | | | | : | | | | : | | | +------------------------------------+ | | [Make New Folder] [ OK ] [Cancel] | +----------------------------------------+
-
Hello, COM(IronRuby) World!
Posted on 2月 2nd, 2013 by cx20
COM(IronRuby)
COM(Component Object Model)はマイクロソフトの提唱するプログラム部品の仕様である。
COM を用いて開発された部品であれば言語を問わず利用することができる。
以下は IronRuby による COM クライアントの例となっている。ソースコード(実行時バインディング)
require 'mscorlib' include System include System::Reflection include System::Runtime::InteropServices objType = System::Type.GetTypeFromProgID("Shell.Application") shell = System::Activator.CreateInstance(objType) hwnd = 0 title = "Hello, COM(IronRuby) World!".to_clr_string option = 0 rootFolder = 36 params = System::Array[System::Object].new [hwnd, title, option, rootFolder] folder = shell.GetType().InvokeMember( "BrowseForFolder", BindingFlags.InvokeMethod, nil, shell, params ) if folder != nil then System::Runtime::InteropServices::Marshal.ReleaseComObject(folder) end System::Runtime::InteropServices::Marshal.ReleaseComObject(shell)
コンパイル方法(実行時バインディング)
C:¥> ir Hello.rb
実行結果
+----------------------------------------+ |Browse For Folder [X]| +----------------------------------------+ | Hello, COM(IronRuby) Wolrd! | | | | +------------------------------------+ | | |[Windows] | | | | +[addins] | | | | +[AppCompat] | | | | +[AppPatch] | | | | +[assembly] | | | | : | | | | : | | | | : | | | +------------------------------------+ | | [Make New Folder] [ OK ] [Cancel] | +----------------------------------------+
-
Hello, COM(IronPython) World!
Posted on 2月 1st, 2013 by cx20
COM(IronPython)
COM(Component Object Model)はマイクロソフトの提唱するプログラム部品の仕様である。
COM を用いて開発された部品であれば言語を問わず利用することができる。
以下は IronPython による COM クライアントの例となっている。ソースコード(実行時バインディング)
import System from System.Reflection import BindingFlags from System.Runtime.InteropServices import Marshal objType = System.Type.GetTypeFromProgID("Shell.Application") shell = System.Activator.CreateInstance(objType) param = System.Array[System.Object]([ 0, "Hello, COM(IronPython) World!", 0, 36 ]) folder = shell.GetType().InvokeMember( "BrowseForFolder", BindingFlags.InvokeMethod, None, shell, param ) if folder != None: Marshal.ReleaseComObject(folder) Marshal.ReleaseComObject(shell)
コンパイル方法(実行時バインディング)
C:¥> ipy Hello.py
実行結果
+----------------------------------------+ |Browse For Folder [X]| +----------------------------------------+ | Hello, COM(IronPython) Wolrd! | | | | +------------------------------------+ | | |[Windows] | | | | +[addins] | | | | +[AppCompat] | | | | +[AppPatch] | | | | +[assembly] | | | | : | | | | : | | | | : | | | +------------------------------------+ | | [Make New Folder] [ OK ] [Cancel] | +----------------------------------------+