Litt ADO.NET i IronRuby
- July 8th, 2010
- Permalink
- Ingen kommentarer
For automatisering av driftsrutiner og andre ad-hoc oppgaver er det gull å ha et bra, dynamisk skriptspråk tilgjengelig. Og med IronRuby får du også tilgang til å bruke hele .Net-rammeverket, så da har du i både pose og sekk for å si det sånn. Akkurat nå sitter jeg og lager noen ADO.Net-spørringer mot SQL Server i IronRuby, og tenkte det kunne være greit å vise hvor enkelt det er.
Så uten noe mer fjas og vas, her er et eksempel hvor jeg henter ut noe data og printer det til konsollet:
2 include System::Data::SqlClient
3
4 # Utility method to open a DB connection, read and print
5 # some data based on a SQL command and a hash of field
6 # display names and related ordinals in the recordset.
7 def execute_read connection_string, sql, fields
8 connection = SqlConnection.new connection_string
9 command = SqlCommand.new sql, connection
10 connection.open
11
12 reader = command.execute_reader
13 while reader.read
14 puts fields.inject({}) do |acc, field|
15 “#{acc} #{field.first}: #{reader[field.last]}“
16 end
17 end
18 connection.close
19 end
20
21 execute_read(
22 “User ID=foo;Password=bar;Data Source=THEBOSS\\SQL2005;Initial Catalog=theDB;“,
23 “SELECT * from Rule“,
24 “Id“ => 0, “Name“ => 1, “Active“ => 3, “Transp“ => 4)
Så lett er det å inkludere et namespace fra .Net-rammeverket og ta det i bruk.
Det eneste som kan være litt vanskelig å tyde her er måten jeg skriver ut rader til konsollet på – jeg har blitt så utrolig glad i inject (aggregate/reduce/fold/whatever) i det siste, og bruker det hele tiden, men det resulterer ikke alltid i den mest lesbare koden i verden for dem som ikke er vandt til slikt
Les også: Slette/tømme MSMQ-køer med IronRuby.


