Как установить схему и обработать регистр имен атрибутов при использовании JRuby, ActiveRecord и JDBC для доступа к MS SQLserver - PullRequest
1 голос
/ 14 апреля 2011

У меня было две проблемы с доступом к базе данных сервера SQL:

  • как настроить схему

Таблица, к которой мне нужно получить доступ, находится под схемой 'general' вместо 'dbo'. Если я не использую set_table_name, я получу ошибки типа 'Invalid object'

class Role < ActiveRecord::Base
  set_table_name "general.Role"
end

Есть ли другой способ установить схему в свойствах URL-адреса jdbc. Я проверил драйвер MS jdbc и драйвер jtds, но не могу найти такое свойство.

  • как обращаться с именами атрибутов

При доступе к db2 все имена атрибутов строчные. Но для mssql имена атрибутов сохраняются в том же регистре, как определено в базе данных, например, «RoleID». Мне интересно, если только драйвер db2 заставляет имена атрибутов в нижнем регистре.

1 Ответ

1 голос
/ 15 апреля 2011

В T-SQL полное имя объекта - <database>.<owner>.<objectname>.Обратите внимание, что вы спрашиваете о владельце , а не о схеме (я полагаю, вы пришли из земли Oracle?).

Учитывая, что это владелец объекта, а не схема,подключенный к «(как в парадигме Oracle), я не думаю, что имеет смысл« подключаться к владельцу », о чем вы и просите.

Используя метод set_table_name, который вы»Описанное описание вполне подходит для этого случая.Даже если ваша таблица Role принадлежит dbo, вам все равно придется использовать set_table_name, поскольку по умолчанию ActiveRecord будет искать «роль» (и она чувствительна к регистру).

...