Edge SQL API
A Edge SQL API fornece uma interface para interação com banco de dados no Edge SQL a partir de Edge Functions executadas na Plataforma de Edge da Azion. Essa documentação destaca os componentes chaves da API e fornece um exemplo de código.
Saiba mais sobre o Edge SQLDatabase
Cria uma conexão com um banco de dados no Edge SQL para sua aplicação. Retorna um objeto do tipo Connection
Métodos
Método | Descrição | Assinatura | Parâmetros | Retorno |
---|---|---|---|---|
Open | Abre uma conexão com a réplica de leitura de um banco de dados EdgeSQL | static async open(name) | name: string | Connection |
Connection
Representa o canal de comunicação com um banco de dados EdgeSQL específico. Este objeto pode ser obtido ao abrir um banco de dados.
Métodos
Método | Descrição | Assinatura | Parâmetros | Retorno |
---|---|---|---|---|
Execute | Executa um comando SQL | async execute(sql,params) | sql: <string> - '?' parâmetro posicional - :<param_name> params: - Array de valores posicionais - Dicionário de valores | - |
Query | Executa um comando SQL | async query(sql, params) | sql: <string> - '?' parâmetro posicional - :<param_name> params: - Array de valores posicionais - Dicionário de valores | Rows |
Prepare | Prepara um comando SQL para execução a partir da combinação do comando e parâmetros | async prepare(sql,params) | sql: <string> - '?' parâmetro posicional - :<param_name> params: - Array de valores posicionais - Dicionário de valores | Statement |
Statement
Uma abstração de um comando SQL, o objeto Statement permite a execução do comando representado. Ele pode ser criado a partir de um comando Connection.prepare
.
Métodos
Método | Descrição | Assinatura | Parâmetros | Retorno |
---|---|---|---|---|
Execute | Executa um comando SQL | async execute(sql, params) | sql: <string> - '?' parâmetro posicional - :<param_name> params: - Array de valores posicionais - Dicionário de valores | - |
Query | Executa um comando SQL | async query(sql, params) | sql: <string> - '?' parâmetro posicional - :<param_name> params: - Array de valores posicionais - Dicionário de valores | Rows |
Atributos
Atributo | Descrição | Assinatura | Parâmetros | Retorno |
---|---|---|---|---|
parameterCount | Retorna o número de parâmetros relacionados do statement | parameterCount() | - | int32 |
parameterName | Retorna o nome do parâmetro | parameterName(index) | index: int32 | String |
columns | Retorna a lista de colunas relacionadas ao statement | columns() | - | Object |
Rows
Representa o conjunto de resultados retornados por uma consulta SQL.
Métodos
Método | Descrição | Assinatura | Parâmetros | Retorno |
---|---|---|---|---|
next | Retorna a próxima linha da resposta da consulta | async next() | - | <Row> ou null |
Atributos
Atributo | Descrição | Assinatura | Parâmetros | Retorno |
---|---|---|---|---|
columnCount | Retorna o número de colunas do resultado da consulta | columnCount() | - | int32 |
columnName | Retorna o nome da coluna | parameterName(index) | index: int32 | String |
columnType | Retorna o tipo da coluna | columnType(index) | index: int32 | int32 |
Row
Representa o conjunto de atributos e valores em uma linha de um conjunto de resultados.
Atributos
Atributo | Descrição | Assinatura | Parâmetros | Retorno |
---|---|---|---|---|
columnName | Retorna o nome da coluna | columnName(index) | index: int32 | String |
columnType | Retorna o tipo da coluna | ColumnType(index) | index: int32 | int32 |
getValue | Retorna o valor do atributo | getValue(index) | index: int32 | Valor |
getString | Retorna o valor do atributo como string | getString(index) | index: int32 | String |
Exemplo de código
O exemplo de código abaixo apresenta uma forma de interação com um banco de dados e recuperação de dados de uma tabela. Este exemplo utiliza um banco de dados chamado mydatabase
e a tabela users
.
import { Database } from "azion:sql";
async function db_query() { let connection = await Database.open("mydatabase"); let rows = await connection.query("select * from users"); let column_count = rows.columnCount(); let column_names = []; for (let i = 0; i < column_count; i++) { column_names.push(rows.columnName(i)); } let response_lines = []; response_lines.push(column_names.join("|")); let row = await rows.next(); while (row) { let row_items = []; for (let i = 0; i < column_count; i++) { row_items.push(row.getString(i)); } response_lines.push(row_items.join("|")); row = await rows.next(); } const response_text = response_lines.join("\n"); return response_text;}
async function handle_request(request) { if (request.method != "GET") { return new Response("Método não permitido", { status: 405 }); } try { return new Response(await db_query()); } catch (e) { console.log(e.message, e.stack); return new Response(e.message, { status: 500 }); }}
addEventListener("fetch", (event) => event.respondWith(handle_request(event.request)));
Considerando que o banco de dados e a tabela já existem, a saída seria:
id|name1|User12|User23|User34|User4