Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ezt a példát csak a koncepció bizonyítékának kell tekinteni. A mintakód egyszerűsítve van az egyértelműség kedvéért, és nem feltétlenül felel meg a Microsoft által ajánlott ajánlott eljárásoknak.
1. lépés: Csatlakozás
A TinyTDS::Client függvény az SQL Database-hez való csatlakozáshoz használható.
require 'tiny_tds'
client = TinyTds::Client.new username: 'yourusername@yourserver', password: 'yourpassword',
host: 'yourserver.database.windows.net', port: 1433,
database: 'AdventureWorks', azure:true
2. lépés: Lekérdezés végrehajtása
Másolja és illessze be a következő kódot egy üres fájlba. Nevezd test.rb- nek. Ezután hajtsa végre a következő parancs beírásával a parancssorból:
ruby test.rb
A kódmintában a TinyTds::Result függvény az SQL Database-beli lekérdezések eredményhalmazának lekérésére szolgál. Ez a függvény egy lekérdezést fogad el, és eredményhalmazt ad vissza. Az eredményhalmaz a result.each do |row|használatával van iterálva.
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. lépés: Sor beszúrása
Ebben a példában látni fogja, hogyan hajthat végre biztonságosan egy INSERT utasítást, hogyan adhat meg olyan paramétereket, amelyek megvédik az alkalmazást az SQL-injektálási értéktől.
Ha a TinyTDS-t az Azure-ral szeretné használni, javasoljuk, hogy több SET utasítást is végrehajtson annak módosításához, hogy az aktuális munkamenet hogyan kezelje az adott információkat. A javasolt SET utasításokat a kódmintában adták meg. Lehetővé teszi például, hogy az új oszlopok null értékeket engedélyezzenek akkor is, SET ANSI_NULL_DFLT_ON ha az oszlop nullképességi állapota nincs explicit módon megadva.
A Microsoft SQL Server datetime formátumával való összhang érdekében használja az strftime függvényt, hogy az adatokat a megfelelő datetime formátumra alakítsa át.
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