Aracılığıyla paylaş


3. Adım: Ruby kullanarak SQL'e bağlanma kavram kanıtı

Bu örnek yalnızca kavram kanıtı olarak kabul edilmelidir. Örnek kod netlik sağlamak için basitleştirilmiştir ve Microsoft tarafından önerilen en iyi yöntemleri temsil etmemektedir.

1. Adım: Bağlanma

TinyTDS::Client işlevi SQL Veritabanına bağlanmak için kullanılır.

    require 'tiny_tds'  
    client = TinyTds::Client.new username: 'yourusername@yourserver', password: 'yourpassword',  
    host: 'yourserver.database.windows.net', port: 1433,  
    database: 'AdventureWorks', azure:true  

2. Adım: Sorgu yürütme

Aşağıdaki kodu kopyalayıp boş bir dosyaya yapıştırın. Test.rb olarak adlandır. Ardından komut isteminizden aşağıdaki komutu girerek yürütebilirsiniz:

    ruby test.rb  

Kod örneğinde TinyTds::Result işlevi SQL Veritabanı'na karşı bir sorgudan sonuç kümesi almak için kullanılır. Bu işlev bir sorguyu kabul eder ve bir sonuç kümesi döndürür. Sonuç kümesi, result.each do |row| kullanılarak yinelenir.

    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. Adım: Satır ekleme

Bu örnekte, bir INSERT deyimini güvenli bir şekilde yürütmeyi, uygulamanızı SQL ekleme değerinden koruyan parametreleri geçirmeyi göreceksiniz.

TinyTDS'yi Azure ile kullanmak için, geçerli oturumun belirli bilgileri işleme biçimini değiştirmek için birkaç SET deyim yürütmeniz önerilir. Önerilen SET ifadeler kod örneğinde sağlanır. Örneğin, SET ANSI_NULL_DFLT_ON sütunun null atanabilirlik durumu açıkça belirtilmemiş olsa bile null değerlere izin vermek için oluşturulan yeni sütunlara izin verir.

Microsoft SQL Server tarih saat biçimiyle hizalamak için strftime işlevini kullanarak ilgili tarih saat biçimine geçin.

    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