SQL Server 2022 : Ruby から利用する2023/11/30 |
Ruby からの SQL Server 利用例です。
|
|
[1] | Ruby インストール済みを前提として例示します。 追加で必要なパッケージをインストールしておきます。 |
# EPEL からインストール [root@dlp ~]# dnf -y install gcc make ruby-devel freetds-devel |
[2] | 基本的な利用例です。データベースや接続ユーザーは事前に適当に作成したものを使用します。 |
# [tiny_tds] インストール [centos@dlp ~]$ gem install tiny_tds # 事前準備のテスト用データベース centos@dlp:~$ sqlcmd -S localhost -U centos -d SampleDB3 -Q 'select * from dbo.SampleTable;' Password: ID First_Name Last_Name ----------- -------------------- --------------------- 1 CentOS Linux 2 Debian Linux 3 RedHat Linux (3 rows affected)
[centos@dlp ~]$
vi use_mssql.rb require 'tiny_tds' client = TinyTds::Client.new username: 'centos', password: 'P@ssw0rd01', host: 'localhost', port: 1433, database: 'SampleDB3', azure:false # SampleTable を Select results = client.execute("select * from SampleTable;") results.each do |row| puts row end # SampleTable に Insert puts "\nInserting into SampleTable... \n\n" results = client.execute("insert SampleTable (First_Name, Last_Name) values ('Windows', 'Microsoft' )") results.each do |row| puts row end # 特定の行を Update puts "Updating 'Last_Name' for user CentOS \n\n" results = client.execute("update SampleTable set Last_Name = 'Stream' where First_Name = 'CentOS'") results.each do |row| puts row end results = client.execute("select * from SampleTable;") results.each do |row| puts row end # 特定の行を Delete puts "\nDeleting user 'Windows' \n" results = client.execute("delete from SampleTable where First_Name = 'Windows';") results.each do |row| puts row end ruby use_mssql.rb {"ID"=>1, "First_Name"=>"CentOS", "Last_Name"=>"Linux"} {"ID"=>2, "First_Name"=>"Debian", "Last_Name"=>"Linux"} {"ID"=>3, "First_Name"=>"RedHat", "Last_Name"=>"Linux"} Inserting into SampleTable... Updating 'Last_Name' for user CentOS {"ID"=>1, "First_Name"=>"CentOS", "Last_Name"=>"Stream"} {"ID"=>2, "First_Name"=>"Debian", "Last_Name"=>"Linux"} {"ID"=>3, "First_Name"=>"RedHat", "Last_Name"=>"Linux"} {"ID"=>4, "First_Name"=>"Windows", "Last_Name"=>"Microsoft"} Deleting user 'Windows'[centos@dlp ~]$ sqlcmd -S localhost -U centos -d SampleDB3 -Q 'select * from dbo.SampleTable;' Password: ID First_Name Last_Name ----------- ------------------- --------------------- 1 CentOS Stream 2 Debian Linux 3 RedHat Linux (3 rows affected) |
Sponsored Link |