Banco de dados do Azure para PostgreSQL-servidor único: usar Ruby para conectar e consultar dadosAzure Database for PostgreSQL - Single Server: Use Ruby to connect and query data

Este início rápido explica como se pode ligar a uma Base de Dados do Azure para PostgreSQL através de uma aplicação Ruby.This quickstart demonstrates how to connect to an Azure Database for PostgreSQL using a Ruby application. Explica como utilizar as instruções SQL para consultar, inserir, atualizar e eliminar dados da base de dados.It shows how to use SQL statements to query, insert, update, and delete data in the database. Os passos neste artigo pressupõem que está familiarizado com a programação com Ruby e que nunca trabalhou com a Base de Dados do Azure para PostgreSQL.The steps in this article assume that you are familiar with developing using Ruby, and are new to working with Azure Database for PostgreSQL.

Pré-requisitosPrerequisites

Este guia de início rápido utiliza os recursos criados em qualquer um destes guias como ponto de partida:This quickstart uses the resources created in either of these guides as a starting point:

Você também precisa ter instalado:You also need to have installed:

  • RubyRuby
  • PG do Ruby, o módulo PostgreSQL para RubyRuby pg, the PostgreSQL module for Ruby

Obter informações da ligaçãoGet connection information

Obtenha as informações de ligação necessárias para se ligar à Base de Dados do Azure para PostgreSQL.Get the connection information needed to connect to the Azure Database for PostgreSQL. Necessita do nome do servidor e das credenciais de início de sessão totalmente qualificados.You need the fully qualified server name and login credentials.

  1. Inicie sessão no Portal do Azure.Log in to the Azure portal.
  2. No menu esquerdo do portal do Azure, clique em Todos os recursos e, em seguida, procure o servidor que acabou de criar, (por exemplo, mydemoserver).From the left-hand menu in Azure portal, click All resources, and then search for the server you have created (such as mydemoserver).
  3. Clique no nome do servidor.Click the server name.
  4. No painel Descrição geral do servidor, tome nota do Nome do servidor e do Nome de início de sessão de administrador do servidor.From the server's Overview panel, make a note of the Server name and Server admin login name. Caso se esqueça da sua palavra-passe, também pode repor a palavra-passe neste painel.If you forget your password, you can also reset the password from this panel. Nome do servidor da Base de Dados do Azure para PostgreSQLAzure Database for PostgreSQL server name

Nota

O símbolo de @ no nome de usuário postgres do Azure foi codificado de URL como %40 em todas as cadeias de conexão.The @ symbol in the Azure Postgres username has been url encoded as %40 in all the connection strings.

Ligar e criar uma tabelaConnect and create a table

Utilize o código seguinte para ligar e criar uma tabela com a instrução SQL CREATE TABLE, seguida das instruções SQL INSERT INTO para adicionar linhas à tabela.Use the following code to connect and create a table using CREATE TABLE SQL statement, followed by INSERT INTO SQL statements to add rows into the table.

O código utiliza um objeto PG::Connection com o construtor new() para se ligar à Base de Dados do Azure para PostgreSQL.The code uses a PG::Connection object with constructor new() to connect to Azure Database for PostgreSQL. Em seguida, chama o método exec() para executar os comandos DROP, CREATE TABLE e INSERT INTO.Then it calls method exec() to run the DROP, CREATE TABLE, and INSERT INTO commands. O código procura erros através da classe PG::Error.The code checks for errors using the PG::Error class. Em seguida, chama o método close() para fechar a ligação antes de terminar.Then it calls method close() to close the connection before terminating.

Substitua as cadeias host, database, user e password pelos seus próprios valores.Replace the host, database, user, and password strings with your own values.

require 'pg'

begin
    # Initialize connection variables.
    host = String('mydemoserver.postgres.database.azure.com')
    database = String('postgres')
    user = String('mylogin%40mydemoserver')
    password = String('<server_admin_password>')

    # Initialize connection object.
    connection = PG::Connection.new(:host => host, :user => user, :dbname => database, :port => '5432', :password => password)
    puts 'Successfully created connection to database'

    # Drop previous table of same name if one exists
    connection.exec('DROP TABLE IF EXISTS inventory;')
    puts 'Finished dropping table (if existed).'

    # Drop previous table of same name if one exists.
    connection.exec('CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);')
    puts 'Finished creating table.'

    # Insert some data into table.
    connection.exec("INSERT INTO inventory VALUES(1, 'banana', 150)")
    connection.exec("INSERT INTO inventory VALUES(2, 'orange', 154)")
    connection.exec("INSERT INTO inventory VALUES(3, 'apple', 100)")
    puts 'Inserted 3 rows of data.'

rescue PG::Error => e
    puts e.message 
    
ensure
    connection.close if connection
end

Ler dadosRead data

Utilize o código seguinte para se ligar e ler dados com uma instrução SQL SELECT.Use the following code to connect and read the data using a SELECT SQL statement.

O código utiliza um objeto PG::Connection com o construtor new() para se ligar à Base de Dados do Azure para PostgreSQL.The code uses a PG::Connection object with constructor new() to connect to Azure Database for PostgreSQL. Em seguida, chama o método exec() para executar o comando SELECT, mantendo os resultados num conjunto de resultados.Then it calls method exec() to run the SELECT command, keeping the results in a result set. A coleção do conjunto de resultados é iterada através do loop resultSet.each do, mantendo os valores de linha atuais na variável row.The result set collection is iterated over using the resultSet.each do loop, keeping the current row values in the row variable. O código procura erros através da classe PG::Error.The code checks for errors using the PG::Error class. Em seguida, chama o método close() para fechar a ligação antes de terminar.Then it calls method close() to close the connection before terminating.

Substitua as cadeias host, database, user e password pelos seus próprios valores.Replace the host, database, user, and password strings with your own values.

require 'pg'

begin
    # Initialize connection variables.
    host = String('mydemoserver.postgres.database.azure.com')
    database = String('postgres')
    user = String('mylogin%40mydemoserver')
    password = String('<server_admin_password>')

    # Initialize connection object.
    connection = PG::Connection.new(:host => host, :user => user, :database => dbname, :port => '5432', :password => password)
    puts 'Successfully created connection to database.'

    resultSet = connection.exec('SELECT * from inventory;')
    resultSet.each do |row|
        puts 'Data row = (%s, %s, %s)' % [row['id'], row['name'], row['quantity']]
    end

rescue PG::Error => e
    puts e.message 
    
ensure
    connection.close if connection
end

Atualizar dadosUpdate data

Utilize o código seguinte para se ligar e atualizar os dados com uma instrução SQL UPDATE.Use the following code to connect and update the data using a UPDATE SQL statement.

O código utiliza um objeto PG::Connection com o construtor new() para se ligar à Base de Dados do Azure para PostgreSQL.The code uses a PG::Connection object with constructor new() to connect to Azure Database for PostgreSQL. Em seguida, chama o método exec() para executar o comando UPDATE.Then it calls method exec() to run the UPDATE command. O código procura erros através da classe PG::Error.The code checks for errors using the PG::Error class. Em seguida, chama o método close() para fechar a ligação antes de terminar.Then it calls method close() to close the connection before terminating.

Substitua as cadeias host, database, user e password pelos seus próprios valores.Replace the host, database, user, and password strings with your own values.

require 'pg'

begin
    # Initialize connection variables.
    host = String('mydemoserver.postgres.database.azure.com')
    database = String('postgres')
    user = String('mylogin%40mydemoserver')
    password = String('<server_admin_password>')

    # Initialize connection object.
    connection = PG::Connection.new(:host => host, :user => user, :dbname => database, :port => '5432', :password => password)
    puts 'Successfully created connection to database.'

    # Modify some data in table.
    connection.exec('UPDATE inventory SET quantity = %d WHERE name = %s;' % [200, '\'banana\''])
    puts 'Updated 1 row of data.'

rescue PG::Error => e
    puts e.message 
    
ensure
    connection.close if connection
end

Eliminar dadosDelete data

Utilize o código seguinte para se ligar e ler os dados com a instrução SQL DELETE.Use the following code to connect and read the data using a DELETE SQL statement.

O código utiliza um objeto PG::Connection com o construtor new() para se ligar à Base de Dados do Azure para PostgreSQL.The code uses a PG::Connection object with constructor new() to connect to Azure Database for PostgreSQL. Em seguida, chama o método exec() para executar o comando UPDATE.Then it calls method exec() to run the UPDATE command. O código procura erros através da classe PG::Error.The code checks for errors using the PG::Error class. Em seguida, chama o método close() para fechar a ligação antes de terminar.Then it calls method close() to close the connection before terminating.

Substitua as cadeias host, database, user e password pelos seus próprios valores.Replace the host, database, user, and password strings with your own values.

require 'pg'

begin
    # Initialize connection variables.
    host = String('mydemoserver.postgres.database.azure.com')
    database = String('postgres')
    user = String('mylogin%40mydemoserver')
    password = String('<server_admin_password>')

    # Initialize connection object.
    connection = PG::Connection.new(:host => host, :user => user, :dbname => database, :port => '5432', :password => password)
    puts 'Successfully created connection to database.'

    # Modify some data in table.
    connection.exec('DELETE FROM inventory WHERE name = %s;' % ['\'orange\''])
    puts 'Deleted 1 row of data.'

rescue PG::Error => e
    puts e.message 
    
ensure
    connection.close if connection
end

Passos seguintesNext steps