Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten przykład powinien być traktowany tylko jako dowód koncepcji. Przykładowy kod jest uproszczony w celu zapewnienia przejrzystości i niekoniecznie reprezentuje najlepsze rozwiązania zalecane przez firmę Microsoft.
Krok 1. Łączenie
Funkcja TinyTDS::Client służy do nawiązywania połączenia z usługą 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
Krok 2. Wykonywanie zapytania
Skopiuj i wklej następujący kod w pustym pliku. Nazwij go test.rb. Następnie wykonaj je, wprowadzając następujące polecenie w wierszu polecenia:
ruby test.rb
W przykładzie kodu funkcja TinyTds::Result służy do pobierania zestawu wyników z zapytania względem usługi SQL Database. Ta funkcja akceptuje zapytanie i zwraca zestaw wyników. Zestaw wyników jest iterowany przy użyciu parametru 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
Krok 3. Wstaw wiersz
W tym przykładzie zobaczysz, jak bezpiecznie wykonać instrukcję INSERT , przekazać parametry, które chronią aplikację przed wartością iniekcji SQL .
Aby korzystać z usługi TinyTDS z platformą Azure, zaleca się wykonanie kilku SET instrukcji w celu zmiany sposobu obsługi określonych informacji w bieżącej sesji. Zalecane SET deklaracje są podane w przykładowym kodzie. Na przykład SET ANSI_NULL_DFLT_ON umożliwi tworzenie nowych kolumn, aby dopuszczać wartości null, nawet jeśli dopuszczalność wartości null w kolumnie nie jest jawnie określona.
Aby dopasować format daty/godziny programu Microsoft SQL Server, użyj funkcji strftime do rzutowania do odpowiedniego formatu daty/godziny.
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