Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit voorbeeld moet alleen worden beschouwd als een bewijs van concept. De voorbeeldcode is voor duidelijkheid vereenvoudigd en vertegenwoordigt niet noodzakelijkerwijs best practices die door Microsoft worden aanbevolen.
Stap 1: Verbinding maken
De functie TinyTDS::Client wordt gebruikt om verbinding te maken met 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
Stap 2: Een query uitvoeren
Kopieer en plak de volgende code in een leeg bestand. Noem het test.rb. Voer deze vervolgens uit door de volgende opdracht in te voeren vanaf de opdrachtprompt:
ruby test.rb
In het codevoorbeeld wordt de functie TinyTds::Result gebruikt om een resultatenset op te halen uit een query op SQL Database. Deze functie accepteert een query en retourneert een resultatenset. De resultatenset wordt doorgelopen met behulp van 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
Stap 3: Een rij invoegen
In dit voorbeeld ziet u hoe u een INSERT-instructie veilig uitvoert, parameters doorgeeft die uw toepassing beschermen tegen SQL-injectiewaarde .
Als u TinyTDS wilt gebruiken met Azure, wordt u aangeraden verschillende SET instructies uit te voeren om te wijzigen hoe de huidige sessie specifieke informatie verwerkt. Aanbevolen SET statements worden geleverd in het codevoorbeeld. Nieuwe kolommen gemaakt met SET ANSI_NULL_DFLT_ON zullen bijvoorbeeld null-waarden toestaan, zelfs als de nullbaarheid van de kolom niet expliciet wordt vermeld.
Als u wilt uitlijnen met de datum/tijd-indeling van Microsoft SQL Server, gebruikt u de strftime-functie om te casten naar de bijbehorende datum/tijd-indeling.
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