Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Этот пример следует рассматривать только как подтверждение концепции. Код в этом примере упрощен для удобочитаемости и для него не гарантируется соблюдение рекомендаций корпорации Майкрософт.
Шаг 1. Подключение
Функция TinyTDS::Client используется для подключения к базе данных SQL.
require 'tiny_tds'
client = TinyTds::Client.new username: 'yourusername@yourserver', password: 'yourpassword',
host: 'yourserver.database.windows.net', port: 1433,
database: 'AdventureWorks', azure:true
Шаг 2. Выполнение запроса
Скопируйте и вставьте следующий код в пустой файл. Назовите его test.rb. Затем выполните его, введя следующую команду из командной строки:
ruby test.rb
В примере кода функция TinyTds::Result используется для получения результированного набора из запроса к базе данных SQL. Эта функция принимает запрос и возвращает результирующий набор. Набор результатов переитерируется с помощью 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
Шаг 3. Вставка строки
В этом примере вы узнаете, как безопасно выполнить инструкцию INSERT , передать параметры, которые защищают приложение от значения внедрения SQL .
Чтобы использовать TinyTDS с Azure, рекомендуется выполнить несколько SET инструкций, чтобы изменить способ обработки конкретной информации текущего сеанса. Рекомендуемые SET инструкции предоставляются в примере кода. Например, SET ANSI_NULL_DFLT_ON позволит новым созданным столбцам принимать значения NULL, даже если состояние null для столбца не указано явно.
Чтобы соответствовать формату datetime в Microsoft SQL Server, используйте функцию strftime для приведения к соответствующему формату datetime.
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