Питання ruby та accdb (доступ до MS)


Якщо у мене є базова система Windows XP, файл Ruby і MS Access 2007 (скажімо c: /foo/bar.accdb), то який найменш нав'язливий спосіб для читання цього файлу .accdb.

  • Що потрібно встановити в xp-системі.
  • Що таке конкретний рядок з'єднання?

10
2017-07-13 15:37


походження




Відповіді:


Щось у цьому напрямку має почати вас. Звичайно, вам доведеться змінити деякі значення, такі як; шлях, ім'я файлу, SQL-вислів та ін

MDB-файл (формат Access 2003 і вище) за допомогою двигуна Jet

require 'win32ole'
connection = WIN32OLE.new('ADODB.Connection')
connection.Open('Provider=Microsoft.Jet.OLEDB.4.0;
                 Data Source=c:\path\filename.mdb')

ACCDB-файл (формат Access 2007 і новіший) за допомогою двигуна ACE

require 'win32ole'
connection = WIN32OLE.new('ADODB.Connection')
connection.Open('Provider=Microsoft.ACE.OLEDB.12.0;
                 Data Source=c:\path\filename.accdb')

Щоб виконати запит SQL, який не повертає дані, використовуйте:

connection.Execute("INSERT INTO Table VALUES ('Data1', 'Data2');")

Щоб виконати запит, який повертає набір записів:

recordset = WIN32OLE.new('ADODB.Recordset')
recordset.Open(SQLstatement, connection)

10
2017-07-22 03:51



Це чудова відповідь! - Jay Godse
Мені потрібно було скористатись: Provider = Microsoft.ACE.OLEDB.12.0 - chris finne
Так, що використовує нову версію бази даних Access ACE, на відміну від старого двигуна Jet. - KevenDenen


Ви можете використовувати Ruby бібліотеку Sequel (http://sequel.rubyforge.org/documentation.html), він має адаптер ADO


6
2017-07-18 18:06





Ви можете використовувати ADO через Ruby win32ole бібліотека

Повна інформація та код можна знайти тут.


3
2017-07-13 17:32





Якщо ви можете використовувати ADO, то ви знайдете бібліотеки ADO, вже встановлені в коробці Windows XP (в іншому випадку поширюйте MDAC). Тоді все, що вам потрібно, це DLL-файли ACE плюс його постачальник OLE DB, який можна безкоштовно завантажити з Центру завантаження Microsoft:

2007 Office System Driver: компоненти з'єднання даних


1
2017-07-13 19:20





Як пояснює це повідомлення в блозі (Ruby на Windows: використання Ruby & ADO для роботи з базами даних MS Access, ви можете використовувати ADO для підключення до бази даних MS Access 2007.


1
2017-07-21 15:09





Якщо Sequel і ADO не працюють навіть після додавання системного драйвера Office 2007, перевірте, чи використовується 32-розрядна або 64-розрядна версія Ruby. Мені довелося зіткнути мою версію до 32-розрядної, щоб все працювало правильно.


0
2018-05-28 12:50