Usare Node.js per eseguire query su un database SQL di Azure

Questa esercitazione introduttiva illustra come usare Node.js per creare un programma per connettersi a un database SQL di Azure e usare istruzioni Transact-SQL per eseguire query sui dati.

Prerequisiti

Per completare questa esercitazione introduttiva, accertarsi di avere:

Informazioni di connessione SQL Server

Ottenere le informazioni di connessione necessarie per connettersi al database SQL di Azure. Nelle procedure successive saranno necessari il nome completo del server, il nome del database e le informazioni di accesso.

  1. Accedere al Portale di Azure.
  2. Scegliere Database SQL dal menu a sinistra, quindi fare clic sul database nella pagina Database SQL.
  3. Nella pagina Panoramica per il database, verificare il nome completo del server, come mostrato nell'immagine seguente. È possibile passare il puntatore sul nome del server per visualizzare l'opzione Fare clic per copiare.

    server-name

  4. Se si sono dimenticate le informazioni di accesso per il server del database SQL di Azure, passare alla pagina del server del database SQL per visualizzare il nome dell'amministratore del server e, se necessario, reimpostare la password.

Importante

È necessario avere una regola del firewall impostata per l'indirizzo IP pubblico del computer su cui si esegue questa esercitazione. Se si usa un computer o un indirizzo IP pubblico diverso, creare una regola del firewall a livello di server con il portale di Azure.

Creare un progetto Web Node.js

Aprire un prompt dei comandi e creare una cartella denominata sqltest. Passare alla cartella creata ed eseguire questo comando:

npm init -y
npm install tedious
npm install async

Inserire il codice per eseguire query sul database SQL

  1. Nell'ambiente di sviluppo o nell'editor di testo preferito creare un nuovo file, sqltest.js.

  2. Sostituire il contenuto con il codice seguente e aggiungere i valori appropriati per il server, il database, l'utente e la password.

    var Connection = require('tedious').Connection;
    var Request = require('tedious').Request;
    
    // Create connection to database
    var config = 
       {
         userName: 'someuser', // update me
         password: 'somepassword', // update me
         server: 'edmacasqlserver.database.windows.net', // update me
         options: 
            {
               database: 'somedb' //update me
               , encrypt: true
            }
       }
    var connection = new Connection(config);
    
    // Attempt to connect and execute queries if connection goes through
    connection.on('connect', function(err) 
       {
         if (err) 
           {
              console.log(err)
           }
        else
           {
               queryDatabase()
           }
       }
     );
    
    function queryDatabase()
       { console.log('Reading rows from the Table...');
    
           // Read all rows from table
         request = new Request(
              "SELECT TOP 20 pc.Name as CategoryName, p.name as ProductName FROM [SalesLT].[ProductCategory] pc JOIN [SalesLT].[Product] p ON pc.productcategoryid = p.productcategoryid",
                 function(err, rowCount, rows) 
                    {
                        console.log(rowCount + ' row(s) returned');
                        process.exit();
                    }
                );
    
         request.on('row', function(columns) {
            columns.forEach(function(column) {
                console.log("%s\t%s", column.metadata.colName, column.value);
             });
                 });
         connection.execSql(request);
       }
    

Eseguire il codice

  1. Al prompt dei comandi eseguire questi comandi:

    node sqltest.js
    
  2. Verificare che vengano restituite le prime 20 righe e quindi chiudere la finestra dell'applicazione.

Passaggi successivi