Langkah 3: Bukti konsep menyambungkan ke SQL menggunakan Ruby

Contoh ini harus dianggap sebagai bukti konsep saja. Kode sampel disederhanakan untuk kejelasan, dan tidak selalu mewakili praktik terbaik yang direkomendasikan oleh Microsoft.

Langkah 1: Sambungkan

Fungsi TinyTDS::Client digunakan untuk menyambungkan ke SQL Database.

    require 'tiny_tds'  
    client = TinyTds::Client.new username: 'yourusername@yourserver', password: 'yourpassword',  
    host: 'yourserver.database.windows.net', port: 1433,  
    database: 'AdventureWorks', azure:true  

Langkah 2: Menjalankan kueri

Salin dan tempel kode berikut dalam file kosong. Sebut saja test.rb. Kemudian jalankan dengan memasukkan perintah berikut dari prompt perintah Anda:

    ruby test.rb  

Dalam sampel kode, fungsi TinyTds::Result digunakan untuk mengambil kumpulan hasil dari kueri terhadap SQL Database. Fungsi ini menerima kueri dan mengembalikan tataan hasil. Kumpulan hasil diulang dengan menggunakan result.each do |row|.

    require 'tiny_tds'    
    print 'test'       
    client = TinyTds::Client.new username: 'yourusername@yourserver', password: 'yourpassword',  
    host: 'yourserver.database.windows.net', port: 1433,  
    database: 'AdventureWorks', azure:true  
    results = client.execute("SELECT c.CustomerID, c.CompanyName,COUNT(soh.SalesOrderID) AS OrderCount FROM SalesLT.Customer AS c LEFT OUTER JOIN SalesLT.SalesOrderHeader AS soh ON c.CustomerID = soh.CustomerID GROUP BY c.CustomerID, c.CompanyName ORDER BY OrderCount DESC")  
    results.each do |row|  
    puts row  
    end  

Langkah 3: Sisipkan baris

Dalam contoh ini Anda akan melihat cara menjalankan pernyataan INSERT dengan aman, meneruskan parameter yang melindungi aplikasi Anda dari nilai injeksi SQL .

Untuk menggunakan TinyTDS dengan Azure, disarankan agar Anda menjalankan beberapa SET pernyataan untuk mengubah cara sesi saat ini menangani informasi tertentu. Pernyataan yang disarankan SET disediakan dalam sampel kode. Misalnya, SET ANSI_NULL_DFLT_ON akan memungkinkan kolom baru yang dibuat untuk mengizinkan nilai null meskipun status nullabilitas kolom tidak dinyatakan secara eksplisit.

Untuk meratakan dengan format tanggalwaktu Microsoft SQL Server, gunakan fungsi strftime untuk mentransmisikan ke format tanggalwaktu yang sesuai.

    require 'tiny_tds'  
    client = TinyTds::Client.new username: 'yourusername@yourserver', password: 'yourpassword',  
    host: 'yourserver.database.windows.net', port: 1433,  
    database: 'AdventureWorks', azure:true  
    results = client.execute("SET ANSI_NULLS ON")  
    results = client.execute("SET CURSOR_CLOSE_ON_COMMIT OFF")  
    results = client.execute("SET ANSI_NULL_DFLT_ON ON")  
    results = client.execute("SET IMPLICIT_TRANSACTIONS OFF")  
    results = client.execute("SET ANSI_PADDING ON")  
    results = client.execute("SET QUOTED_IDENTIFIER ON")  
    results = client.execute("SET ANSI_WARNINGS ON")  
    results = client.execute("SET CONCAT_NULL_YIELDS_NULL ON")  
    require 'date'  
    t = Time.now  
    curr_date = t.strftime("%Y-%m-%d %H:%M:%S.%L")  
    results = client.execute("INSERT SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate)  
    OUTPUT INSERTED.ProductID VALUES ('SQL Server Express New', 'SQLEXPRESS New', 0, 0, '#{curr_date}' )")  
    results.each do |row|  
    puts row  
    end