OracleClientを使う
Testing System.Data.OracleClientをNemerleらしさを強めに書き直してみる。
using System.Console; using System.Data; using System.Data.OracleClient; module M { dbstr = "Data Source=testdb;User Id=scott;Password=tiger;"; Main () : void { def iter (reader) { if (!reader.Read ()) reader.Close (); else { def (ename, job) = (reader.Item ["ename"], reader.Item ["job"]); WriteLine ($"Employee Name: $ename, Job: $job"); iter (reader); } }; mutable conn = null; try { conn = OracleConnection (dbstr); conn.Open (); def cmd = conn.CreateCommand (); cmd.CommandText = "SELECT ename, job FROM scott.emp"; iter (cmd.ExecuteReader ()); } finally { when (conn != null) conn.Close (); } } }
何故か型推論がインデクサを見つけてくれなかったので、Item経由でアクセスしています。