Guia de início rápido: usar Ruby para conectar e consultar dados no Banco de Dados do Azure para PostgreSQL - Servidor Único

APLICA-SE A: Banco de Dados do Azure para PostgreSQL - Servidor Único

Importante

O Banco de Dados do Azure para PostgreSQL - Servidor Único está no caminho da desativação. É altamente recomendável que você atualize para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível. Para obter mais informações sobre como migrar para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível, consulte O que está acontecendo com o Banco de Dados do Azure para Servidor Único PostgreSQL?.

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. Explica como utilizar as instruções SQL para consultar, inserir, atualizar e eliminar dados da base de dados. 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.

Pré-requisitos

Este guia de início rápido utiliza os recursos criados em qualquer um desTes guias como ponto de partida:

Você também precisa ter instalado:

Obter informações da ligação

Obtenha as informações de ligação necessárias para se ligar à Base de Dados do Azure para PostgreSQL. Necessita do nome do servidor e das credenciais de início de sessão totalmente qualificados.

  1. Inicie sessão no portal do Azure.
  2. No menu à esquerda no portal do Azure, selecione Todos os recursos e procure o servidor que você criou (como mydemoserver).
  3. Selecione o nome do servidor.
  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. Caso se esqueça da sua palavra-passe, também pode repor a palavra-passe neste painel. Nome do servidor da Base de Dados do Azure para PostgreSQL

Nota

O @ símbolo no nome de usuário do Azure Postgres foi codificado como %40 em todas as cadeias de conexão.

Ligar-se e criar uma tabela

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.

O código usa um PG::Connection objeto com o construtor new para se conectar ao Banco de Dados do Azure para PostgreSQL. Em seguida, ele chama o método exec() para executar os comandos DROP, CREATE TABLE e INSERT INTO. O código verifica se há erros usando a PG::Error classe. Em seguida, ele chama o método close() para fechar a conexão antes de encerrar. Consulte a documentação de referência do Ruby Pg para obter mais informações sobre essas classes e métodos.

Substitua as cadeias host, database, user e password pelos seus próprios valores.

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 dados

Utilize o código seguinte para se ligar e ler dados com uma instrução SQL SELECT.

O código usa um PG::Connection objeto com o construtor new para se conectar ao Banco de Dados do Azure para PostgreSQL. Em seguida, ele chama o método exec() para executar o comando SELECT, mantendo os resultados em um conjunto de resultados. 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. O código verifica se há erros usando a PG::Error classe. Em seguida, ele chama o método close() para fechar a conexão antes de encerrar. Consulte a documentação de referência do Ruby Pg para obter mais informações sobre essas classes e métodos.

Substitua as cadeias host, database, user e password pelos seus próprios valores.

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.'

    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 dados

Utilize o código seguinte para se ligar e atualizar os dados com uma instrução SQL UPDATE.

O código usa um PG::Connection objeto com o construtor new para se conectar ao Banco de Dados do Azure para PostgreSQL. Em seguida, ele chama o método exec() para executar o comando UPDATE. O código verifica se há erros usando a PG::Error classe. Em seguida, ele chama o método close() para fechar a conexão antes de encerrar. Consulte a documentação de referência do Ruby Pg para obter mais informações sobre essas classes e métodos.

Substitua as cadeias host, database, user e password pelos seus próprios valores.

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 dados

Utilize o código seguinte para se ligar e ler os dados com uma instrução SQL DELETE.

O código usa um PG::Connection objeto com o construtor new para se conectar ao Banco de Dados do Azure para PostgreSQL. Em seguida, ele chama o método exec() para executar o comando UPDATE. O código verifica se há erros usando a PG::Error classe. Em seguida, ele chama o método close() para fechar a conexão antes de encerrar.

Substitua as cadeias host, database, user e password pelos seus próprios valores.

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

Clean up resources (Limpar recursos)

Para limpar todos os recursos usados durante este início rápido, exclua o grupo de recursos usando o seguinte comando:

az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes

Próximos passos