Запрос MS Access count (*) в Ruby-скрипте не возвращается с номером - PullRequest
0 голосов
/ 20 декабря 2011

У меня есть скрипт, я хочу определить количество записей в таблице базы данных Microsoft Access и назначить его переменной. У меня есть код ниже (фрагмент), который работает без ошибок, но результат не число, а вместо #. Это число в каком-то другом формате? Могу ли я преобразовать его в число? Когда я запускаю SQL в Access, я получаю 43 (например); это то, что я ожидал.

...

connection = WIN32OLE.new('ADODB.Connection')
connection.Open('Provider=Microsoft.ACE.OLEDB.12.0;
                 Data Source=C:\Database.mdb')
recordset = WIN32OLE.new('ADODB.Recordset')
  number_of_sites =  connection.Execute("SELECT count(*)FROM Test;")
  puts number_of_sites

...

Заранее спасибо! :)

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

Андрей близок - connection.Execute возвращает набор записей, а не скаляр. Чтобы получить количество, вы хотите 'recordset.Fields (0) .value).

0 голосов
/ 21 декабря 2011

connection.Execute не возвращает данные, он просто выполняет sql. Вы можете использовать его для вставки. Чтобы получить данные, вам нужен набор записей.

recordset = WIN32OLE.new('ADODB.Recordset')
recordset.Open("SELECT count(*) FROM Test", connection)
count = recordset[0]

Я не уверен в индексе набора записей - это может быть набор записей [1]?

...