ActiveRecordを使用してSQL Serverに接続したことがありますか?これは可能ですか?誰かが出発点を提供できますか?ActiveRecordを使用してSQL Serverに接続する
答えて
私が使用したもの。この:
ここから: http://github.com/rails-sqlserver/2000-2005-adapter/tree/master
インストール
まず、あなたは、Ruby DBIとRuby ODBCが必要になります。私の知る限りでは、DBIのADO DBDはもはやサポートされていません。以下のインストールは、FreeTDSのような必要なすべての可動部品をインストールおよび/または設定する方法を網羅したものではありません。また、依存ライブラリーとアダプター自体の両方のgemインストールを想定しています。
このバージョンのアダプターは、現在の安定版0.4.0までの古代の0.0.23バージョンのDBIを使用して開発されました。 DBIのそれ以降のバージョンでは多くの変更が行われる予定ですので、以下の例に示すバージョン0.4.0へのインストールを最大限にお勧めします。当分の間、我々は0.4.0以上のDBIバージョンはサポートしていません。良いニュースは、ADOで非常に古いDBIを使用していた場合、技術的にこのアダプタは引き続き機能しますが、パスが古くなり、長い間サポートされない可能性があることを警告してください。ここから
$ gem install dbi --version 0.4.0
$ gem install dbd-odbc --version 0.2.4
$ gem install rails-sqlserver-2000-2005-adapter -s http://gems.github.com
:まずhttp://lambie.org/2008/02/28/connecting-to-an-mssql-database-from-ruby-on-ubuntu/
、以下が含まれるためにあなたの〜/ .profileにを更新:
export ODBCINI=/etc/odbc.ini
export ODBCSYSINI=/etc
export FREETDSCONF=/etc/freetds/freetds.conf
その後ログアウトにより、再度、.profileファイルをリロードします。
第2に、Ubuntu 7.10 Serverではいくつかのパッケージをインストールする必要がありました。ここで重要なことは、データベースに接続するときに、私が使用しますDSNでACUMENSERVER、ある
[email protected]:/etc/freetds$ cat freetds.conf
[ACUMENSERVER]
host = 192.168.0.10
port = 1433
tds version = 7.0
:私はこのようにそれを設定することができ設置FreeTDSので
[email protected]:~$ sudo aptitude install unixodbc unixodbc-dev freetds-dev sqsh tdsodbc
。ホストとポートは自明ですが、7.0を特にtdsバージョンとして使用しなければならないことは注目に値します。
テストFreeTDSのはあまりにも難しいことではありません。
[email protected]:~$ sqsh -S ACUMENSERVER -U username -P password
sqsh: Symbol `_XmStrings' has different size in shared object, consider re-linking
sqsh-2.1 Copyright (C) 1995-2001 Scott C. Gray
This is free software with ABSOLUTELY NO WARRANTY
For more information type '\warranty'
1> use acumen
2> go
1> select top 1 firstname, lastname from tblClients
2> go
[record returned]
(1 row affected)
1> quit
次はそれがODBC設定する必要があります:
[email protected]:/etc$ cat odbcinst.ini
[FreeTDS]
Description = TDS driver (Sybase/MS SQL)
Driver = /usr/lib/odbc/libtdsodbc.so
Setup = /usr/lib/odbc/libtdsS.so
CPTimeout =
CPReuse =
FileUsage = 1
[email protected]:/etc$ cat odbc.ini
[ACUMENSERVER]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = ACUMENSERVER
Database = ACUMEN
は、私は、その後のisqlとの接続テスト:
[email protected]:~$ isql -v ACUMENSERVER username password
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> use ACUMEN
[][unixODBC][FreeTDS][SQL Server]Changed database context to 'Acumen'.
[ISQL]INFO: SQLExecute returned SQL_SUCCESS_WITH_INFO
SQLRowCount returns -1
SQL> select top 1 firstname from tblClients;
[record returned]
SQLRowCount returns 1
1 rows fetched
SQL> quit
OKを、私たちはFreeTDSを使ってリモートのMSSQLサーバーに接続するODBCを持っています。残っているのは、Rubyをミックスに追加することだけです。
[email protected]:~$ sudo aptitude install libdbd-odbc-ruby
テストの最後には、Rubyは、実際のデータベースをヒットするDBIとODBCを使用することができるということであり、それはテストするのは簡単です:
[email protected]:~$ irb
irb(main):001:0> require "dbi"
=> true
irb(main):002:0> dbh = DBI.connect('dbi:ODBC:ACUMENSERVER', 'username', 'password')
=> #<DBI::DatabaseHandle:0xb7ac57f8 @handle=#<DBI::DBD::ODBC::Database:0xb7ac5744
@handle=#<odbc::database:0xb7ac576c>, @attr={}>, @trace_output=#</odbc::database:0xb7ac576c><io:0xb7cbff54>,
@trace_mode=2>
irb(main):003:0> quit
そして唯一のSQL SELECTとのより完全なテスト(、 )あなたを気に: http://ubuntuforums.org/showthread.php?t=433435&page=2
:#!/usr/bin/env ruby
require 'dbi'
db = DBI.connect('dbi:ODBC:ACUMENSERVER', 'username', 'password')
select = db.prepare('SELECT TOP 10 firstname FROM tblClients')
select.execute
while rec = select.fetch do
puts rec.to_s
end
db.disconnect
</io:0xb7cbff54>
ここから(間違った場所にいるのODBCのlibを)修正しますプロンプト
isql -v $dsn $user $passwd
からMSSQLにアクセスする際に10
libtdsodbc.so
with freeTDS (freetds-dev, tdsodbc), you can either edit the path in the odbcinst.ini file for the [FreeTDS] driver section OR cp the /usr/lib/odbc/libtdsodbc.so into /usr/lib/libtdsodbc.so.
のいずれかの方法は、私はこれが有用であることがわかっ働くhttp://www.unixodbc.org/doc/FreeTDS.html#Configuration
そしてdatabase.ymlファイル内
:
development:
adapter: sqlserver
mode: odbc
dsn: dsn_name
username: my_username
password: my_password
これらはste ps私はCentos 5.3のためにコンパイルしました。これを実現するには、多くの試行錯誤が必要でした。それは完全にきれいなCentosのインストールからです。
EPELをインストールします。
yum install gcc
yum install freetds
yum install ruby-devel
yum install unixODBC-devel
yum install ruby rubygems
レールを取り付けます:
gem install rails
は、DB関連の宝石をインストールします。
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
はルビー、RubyGemsの、FreeTDSの、unixODBCの、開発ツールをインストールします。
gem install dbd-odbc
gem install rails-sqlserver-2000-2005-adapter -s http://gems.github.com
ダウンロード、ルビー、ODBCを構築し、インストールします。
wget http://www.ch-werner.de/rubyodbc/ruby-odbc-0.9997.tar.gz
tar zxvf ruby-odbc-0.9997.tar.gz
cd ruby-odbc-0.9997
ruby extconf.rb
make
make install
最終的な宝石のリスト:
# gem list
*** LOCAL GEMS ***
actionmailer (2.3.2)
actionpack (2.3.2)
activerecord (2.3.2)
activeresource (2.3.2)
activesupport (2.3.2)
dbd-odbc (0.2.4)
dbi (0.4.1)
deprecated (2.0.1)
rails (2.3.2)
rails-sqlserver-2000-2005-adapter (2.2.17)
rake (0.8.7)
あなたのODBC接続をテストするためのisqlのような様々なツールを使用することができます。ブライアンのポストはこれをすばらしい詳細でカバーしているので、私は繰り返さない。あなたはこのようなものになりますdatabase.ymlを必要とするレールで:Ubuntuで
development:
adapter: sqlserver
mode: odbc
dsn: dsnName
username: username
password: password
を、私はFreeTDS系とのActiveRecord-のSQLServerアダプタの宝石を使用します。
sudo apt-get install freetds
をそして、あなたのGemfileにこれを追加します:あなたががちを通じてFreeTDSのをインストールすることができます
gem 'activerecord-sqlserver-adapter'
私は物事を取得するために、8.0
に/etc/freetds/freetds.conf
で構成されたFreeTDSのバージョン番号を変更しなければなりませんでした正しく動作します。
[global]
tds version = 8.0
- 1. SQL-Serverを直接オンラインデータベースに接続するactiverecord-sqlserver-adapter
- 2. C++/CLIを使用してSQL Serverに接続する方法
- 3. ODBCを使用してSQL Server 2008に接続する
- 4. pypyodbcを使用してSQL Serverに接続する
- 5. R - RSQLServerを使用してSQL Serverに接続する
- 6. Rを使用してSQL Serverに接続する方法は?
- 7. MacでiODBCを使用してMS SQL Serverに接続する
- 8. オンプレミスSQL ServerのOpenRowSetを使用してSQL Azure DBに接続
- 9. powershellを使用してSQL Serverに接続します。
- 10. Windows認証接続文字列を使用してOLEDBを使用してSQL Serverに接続する方法
- 11. VB.Netコードを使用してSQL Server Express DBを接続する
- 12. SQL Serverドライバを使用してPDO経由でSQL Serverに接続
- 13. JSを使用してMS SQL Serverに接続
- 14. IPを使用してSQL Serverに接続できません
- 15. DBIを使用してSQL Serverに接続
- 16. C#exeを使用してSQL Serverに接続
- 17. TCLを使用してMicrosoft SQL Serverに接続
- 18. MacでRを使用してMicrosoft SQL Serverに接続
- 19. PHPからSSLを使用してSQL Serverに接続
- 20. Entity Framework 4を使用してSQL Serverに接続
- 21. SQL Serverに特定のポートを使用して接続
- 22. PHPを使用してSQL Server 2005に接続
- 23. C#を使用してSQL Serverデータベースに接続できない
- 24. Node.jsを使用してSQL Serverに接続できません
- 25. Sql ServerとMVCを使用してローカルホストコンピュータからリモートデータベースに接続
- 26. Perl DBI:Windows認証を使用するSQL Serverに接続する
- 27. ODBCデータ接続を使用してローカルSQL Serverに接続する方法は? (ログインに失敗しました)
- 28. 異なるネットワークでIPアドレスを使用してSQL Serverデータベースに接続する
- 29. PHPがfreeTDSを使用してSQL Serverに接続しています
- 30. OE10.2Bx86を使用してSQL Server x64をProgressに接続する方法は?