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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk