Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Вы рассмотрели использование JRuby? Microsoft имеет драйвер JDBC для SQL Server, который может быть выполнен на вариантах UNIX (это - чистый Java AFAIK). Я смог получить 2,0 технологических предварительных просмотра, работающие с JRuby и направляющими 2.1 сегодня. Я еще не попробовал миграции, но до сих пор драйвер, кажется, работает вполне хорошо.
Вот грубый эскиз того, как получить его работа:
jruby -S gem install rails
)jruby -S gem install activerecord-jdbcmssql-adapter
jruby -S rails hello
)jruby script/console
и создание модели.development: host: localhost adapter: jdbc username: sa password: kitteh driver: com.microsoft.sqlserver.jdbc.SQLServerDriver url: jdbc:sqlserver://localhost;databaseName=mydb timeout: 5000
Примечание: Я не уверен, что можно использовать аутентификацию Windows с драйвером JDBC. Вы, возможно, должны использовать аутентификацию SQL Server.
Желаю удачи!
Ben
Вместо того, чтобы выполнить Ваш рабочий сервер на Linux Вы рассмотрели для выполнения направляющих в Windows? Я в настоящее время разрабатываю приложение с помощью SQL Server и пока не знают, что это, кажется, хорошо работает.
Это шаги для доступа к базе данных SQL Server от направляющие 2,0 приложения, работающие на Windows.
Адаптер SQL Server не включен по умолчанию в направляющих 2. Необходимо загрузить и установить его с помощью следующей команды.
gem install activerecord-sqlserver-adapter
--source=http://gems.rubyonrails.org
Загрузите последнюю версию рубина-dbi от
http://rubyforge.org/projects/ruby-dbi/
и затем извлеките файл из рубина-dbi\lib\dbd\ADO.rb
к C:\ruby\lib\ruby\site_ruby\1.8\DBD\ADO\ADO.rb.
При предупреждении не существует папка ADO, таким образом, необходимо создать ее заранее.
Не возможно предварительно сконфигурировать направляющие для SQL Server с помощью - параметр базы данных, просто создать приложение, как обычно, и затем изменить config\database.yml в папке приложения следующим образом:
development:
adapter: sqlserver
database: your_database_name
host: your_sqlserver_host
username: your_sqlserver_user
password: your_sqlserver_password
Выполненные грабли db:migrate для проверки установки. Если все прекрасно, Вы не должны получать сообщение об ошибке.
Я настоятельно рекомендовал бы, чтобы Вы уравновесили миграцию от унаследованной базы данных. Вы, вероятно, окажетесь в мире боли довольно быстро. На основе опыта направляющие и схемы прежней версии не идут слишком хорошо вместе также.
Я не думаю, что существует "хорошее решение" этого, я боюсь.
Наши разработчики используют Mac OS X, и наша продукция работает на Linux. По унаследованным причинам нам следует использовать MS SQL Server 2005.
Мы разрабатываем на Ubuntu 8.04, но наши производственные серверы работают под управлением Linux (Centos), а также мы используем SqlServer 2005.
Исходя из нашего опыта первоначальная установка и настройка было довольно больно - потребовалось несколько недель, чтобы все играть хорошо вместе. Тем не менее, теперь все это кажется безнадежным, и я считаю, что SqlServer работает отлично.
Мы используем драйверы ODBC FreeTDS, которые когда-то настроены, хороши.
НЕ запускайте производственные приложения Rails в Windows - вы напрашиваетесь на проблемы. Это хорошо для развития, но не более того. Rails плохо масштабируется на платформах Windows.
Надеюсь, это поможет.