Сведения о вопросе

Martincow

19:02, 20th August, 2020

Теги

Какие-либо советы по получению Rails для запуска с доступом к бэк-энду?

Просмотров: 396   Ответов: 7

Я содрогаюсь, чтобы спросить, но мой клиент не может предложить никакого другого решения SQL (или SQL-подобного). Я знаю, что доступ имеет некоторые крючки SQL; достаточно ли их для базового ActiveRecord?

Позже:

Я ценю все предложения использовать другие базы данных, но поверьте мне: я пытался убедить их. Существует список "approved", и в нем нет баз данных SQL. Включение чего-то в список может занять больше года, и этот проект будет завершен через три недели.



  Сведения об ответе

dumai

22:51, 16th August, 2020

Это большой риск, но есть адаптер ODBC для ActiveRecord , который может работать.


  Сведения об ответе

VERSUION

00:00, 2nd August, 2020

Похоже, здесь есть что-то вроде адаптера подключения доступа: http://svn.behindlogic.com/public/rails/activerecord/lib/active_record/connection_adapters/msaccess_adapter.rb

Файл database.yml будет выглядеть следующим образом:

development:
  adapter: msaccess
  database: C:\path\to\access_file.mdb

Я опубликую больше после того, как попробую его с Rails 2.1


  Сведения об ответе

SILA

00:41, 9th August, 2020

Другой вариант, который является более сложным, но может работать, если вы будете вынуждены сделать это, - это написать слой веб-служб RESTful, который будет предоставлять доступ к rails. Если вы будете осторожны в своем дизайне, эти веб-службы RESTful могут быть непосредственно использованы ActiveResoure, что даст вам большую функциональность ActiveRecord.


  Сведения об ответе

FAriza

04:17, 22nd August, 2020

Есть некоторые странные вещи в доступе, которые могут вызвать проблемы, и я не знаю, если ODBC позаботится об этом. Если это так, то @John Топли прав, ODBC будет вашим единственным шансом.

  1. True в access = -1, а не 1
  2. Доступ обрабатывает даты иначе, чем обычный TSQL.
  3. Вы можете столкнуться с проблемой создания отношений.

Если вы идете с доступом, вероятно, узнаете больше об отладке AcriveRecord, чем вы когда-либо хотели ( что может быть не так уж и плохо)


  Сведения об ответе

SEEYOU

07:10, 24th August, 2020

Проклятый земли написала:

True в access = -1, а не 1

Не правильный. Истина определяется как не являющаяся ложью. Поэтому, если вы хотите использовать True в предложении WHERE, используйте вместо него не False. Это обеспечит полную кросс-платформенную совместимость со всеми двигателями SQL.

Тем не менее, это вряд ли проблема, так как любой драйвер, который вы используете для подключения к вашей серверной части, правильно переведет True в WHERE предложениях в соответствующее значение. Единственное исключение может быть в запросах passthrough, но в этом случае вы должны написать SQL outside Access и протестировать его на своей внутренней стороне, а затем просто вставить рабочий SQL в представление SQL вашего запроса passthrough в Access.

Проклятый земли написала:

Доступ обрабатывает даты иначе, чем обычный TSQL.

Опять же, это будет проблемой только в том случае, если вы не пройдете через драйверы ODBC или OLEDB, которые позаботятся о переводе Jet SQL в TSQL для вас.

Проклятый земли написала:

Вы можете столкнуться с проблемой создания отношений.

Я не уверен, почему вы хотите, чтобы приложение Access изменяло схему вашего бэк-энда, поэтому мне кажется, что это не проблема.


  Сведения об ответе

DINO

20:00, 14th August, 2020

Вы действительно должны уговорить их разрешить SQLite. Он очень прост в настройке и работает так же, как и Access (как файл, находящийся рядом с приложением на том же сервере).


  Сведения об ответе

KOMP

23:51, 12th August, 2020

Во-первых, вы действительно хотите использовать sqlite.

По моему опыту, сам доступ-это куча [отредактированных], но движок базы данных Jet, который он использует, на самом деле довольно быстр и может обрабатывать довольно сложные запросы SQL. Если вы можете найти адаптер rails, который действительно работает, я бы сказал, что вы будете в порядке. Просто не открывайте DB с помощью интерфейса доступа, пока ваше приложение rails работает :-)

Если ваш клиент достаточно анален, чтобы позволить вам развиваться только с утвержденным списком баз данных, они могут быть более обеспокоены тем, что Jet устарел и больше не получит поддержки от MS.

Это может дать вам некоторые боеприпасы в ваших поисках, чтобы использовать реальную базу данных. Удачи


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться