Unfortunately, DBI's ADO driver does not support the columns method.
This causes a failure in Kansas when trying to select columns.

C:\ruby\lib\ruby\site_ruby/kansas/Table.rb:49:in `key'
        result = self.class.primaries.collect{|f| @row[f.to_s]}
C:\ruby\lib\ruby\site_ruby/kansas/Database.rb:481:in `add_object'
        if cachedObj = has_object?(object.class, object.key)
C:\ruby\lib\ruby\site_ruby/kansas/Database.rb:232:in `select'
          results << add_object(tables[0].new.load(row.to_h, self,
read_only))
C:\ruby\lib\ruby\site_ruby/kansas/Database.rb:230:in `fetch'
        rawResults = @dbh.select_all(sql) do |row|
C:\ruby\lib\ruby\site_ruby\1.8/dbi/dbi.rb:846:in `each'
        fetch(&p)
C:\ruby\lib\ruby\site_ruby\1.8/dbi/dbi.rb:673:in `select_all'
            sth.each(&p)
C:\ruby\lib\ruby\site_ruby\1.8/dbi/dbi.rb:671:in `execute'
        execute(stmt, *bindvars) do |sth|
C:\ruby\lib\ruby\site_ruby\1.8/dbi/dbi.rb:671:in `select_all'
        execute(stmt, *bindvars) do |sth|
C:\ruby\lib\ruby\site_ruby/kansas/Database.rb:230:in `select'
        rawResults = @dbh.select_all(sql) do |row|

The ADO Connection object does have a OpenSchema method to collect the
columns. Perhaps this could be used to add the columns method in ADO.rb.