Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Executa instruções no formato de comandos na linguagem SQL. Este bloco utiliza recursos do Apache Cordova, para mais informações de configuração e funcionamento, verifique a documentação oficial do Cordova.


Figura 1 - Bloco Executar Comando SQL


Informações

Este bloco pode ser utilizado caso seja necessário personalizar as instruções SQL utilizadas. No entanto, o Cronapp possui recursos de banco de dados offline e banco local com PouchDB. Para mais detalhes, verifique o tópico "Suporte a dados offline (mobile)" da documentação Componente visual fonte de dados e o tutorial do PouchDB, respectivamente.

Compatibilidade

  • Bloco cliente: cronapi.cordova.database.executeSql()

Retorno

O retorno do bloco irá depender do comando SQL executado.

Parâmetros

Nome do Banco

Nome do banco de dados no qual serão executados os comandos SQL.

  • Posição: 1
  • Inglês: Database Name
  • Tipo: Texto / String
  • Exemplo: "contatos"

SQL

Comando SQL a ser executado no banco de dados informado anteriormente.

  • Posição: 2
  • Inglês: SQL
  • Tipo: Texto / String
  • Exemplo: "CREATE TABLE PESSOA (idPessoa integer PRIMARY KEY, nome);"

Lista de parâmetros

Lista de parâmetros a ser adicionada ao comando. Neste parâmetro, para criar a lista, pode ser utilizado o bloco criar lista com.

  • Posição: 3
  • Inglês: List of parameters
  • Tipo: Objeto / Object
  • Exemplo: Uso do bloco criar lista com.

Características do bloco

O bloco Executar Comandos SQL utiliza os comandos da linguagem SQL. Esses comandos são agrupados em 4 categorias, sendo DDL e DML as duas principais:

  • Linguagem de Definição de Dados (DDL): Comandos desse tipo são utilizados pra criar, modificar e apagar a estrutura dos objetos de um banco de dados. Os comandos são: CREATE, ALTER, DROP, RENAME e TRUNCATE.

  • Linguagem de Manipulação de Dados (DML): Comandos desse tipo são utilizados para armazenar, obter, modificar e apagar os dados. Os comandos são: INSERT, SELECT, UPDATE e DELETE.

Consultas dinâmicas

O bloco Executar Comandos SQL além de aceitar consultas estáticas, onde os parâmetros são passados na própria consulta, também aceita consultas dinâmicas. As consultas SQL dinâmicas são úteis quando os argumentos a serem utilizados na consulta são obtidos durante a execução do programa, sendo frequentemente recuperados através da interação do usuário com o sistema.

Nesse tipo de consulta, os parâmetros são passados de forma dinâmica de acordo com o exemplo abaixo, onde o símbolo (?) significa o valor a ser obtido e agregado ao comando SQL a ser executado.


Bloco de código
languagesql
linenumberstrue
INSERT INTO nomeTabela VALUES (?,?,?);

Exemplo

Os tópicos abaixo mostram alguns exemplos de uso do bloco Executar Comando SQL. Neles veremos os principais comandos SQL utilizados. O banco de dados utilizado nos exemplos é o mesmo que foi criado na documentação do bloco Criar banco de dados, consulte-a para mais detalhes.

Âncora
criandoTabelas
criandoTabelas

Criando tabelas

Na função abaixo, estamos criando duas tabelas, "pessoa" e "telefone", no banco de dados "contatos" no dispositivo móvel. Para esta ação utilizamos dois comandos "create table", como mostra o bloco de código abaixo, no parâmetro SQL do bloco.


Bloco de código
languagesql
linenumberstrue
CREATE TABLE PESSOA (idPessoa integer PRIMARY KEY, nome);
CREATE TABLE TELEFONE (idTelefoneidTel integer PRIMARY KEY, num, idPessoa, CONSTRAINT fk_PesTel FOREIGN KEY (idPessoa) REFERENCES PESSOA (idPessoa));


Neste exemplo, a tabela "pessoa" é composta por dois campos, idPessoa (primary key) e nome, enquanto a tabela "telefone" possui os campos idTelefone idTel (primary key), num e idPessoa. Observe também que essas tabelas mantêm um relacionamento de chave estrangeira (foreign key), o que significa que cada registro na tabela "telefone" deve estar associado a um registro na tabela "pessoa".


Figura 2 - Criando tabelas utilizando o comando 'create table'

Inserindo registros

Na função abaixo, estamos utilizando os comandos "insert into" para inserir registros nas tabelas. No bloco Executar Comando SQL da variável "pessoa", estamos utilizando uma consulta dinâmica para inserir registros na tabela correspondente, por isso no parâmetro Lista de parâmetros inserimos um bloco criar lista com e adicionamos o valor "Ana".


Figura 2.1 - Inserindo registros nas tabelas utilizando o comando 'insert into'


No bloco Executar Comando SQL da variável "telefone", estamos utilizando uma consulta estática para inserir dois registros na tabela "telefone". Os comandos passados estão no bloco de código abaixo.


Bloco de código
languagesql
linenumberstrue
INSERT INTO TELEFONE (idPessoa, num) VALUES (1,'(51) 98764-3200');
INSERT INTO TELEFONE (idPessoa, num) VALUES (1,'(63) 99097-6578');

Âncora
consultandoRegistros
consultandoRegistros

Consultando registros

Na função, vamos fazer uma consulta na tabela "telefone" utilizando o comando "select from". Neste exemplo, estamos utilizando uma consulta dinâmica para retornar os registros que possuem idPessoa igual a 1. Retorna um objeto..

Após configurar o bloco Executar Comando SQL na variável "objeto", precisamos configura um laço de repetição para percorrer todos os itens de retorno dessa variável. Para isso, utilizamos o bloco para cada item na lista e nele inserimos a variável "objeto". Em seguida, na variável "item", adicionamos o bloco Obter Propriedade, que em cada item da variável "objeto" retornará a propriedade "num", que corresponde ao número de telefone do registro consultado. Visto que na variável "objeto" é retornado, além dos itens da consulta, também as propriedades length e prototype, utilizamos o bloco condicional se faça para encerrar o laço caso a propriedade item seja nula. Por fim..


Bloco de código
languagesql
linenumberstrue
SELECT * FROM TELEFONE WHERE idPessoa=?;


Figura 2.2 - Consultando registros utilizando o comando 'select from'

Atualizando um registro

Na função abaixo, vamos atualizar um registro na tabela "pessoa" utilizando o comando "update". Neste exemplo, estamos utilizando uma consulta dinâmica para atualizar o registro que possui idPessoa igual a 1. Observe que no tópico Criando tabelas, esse registro foi criado com o campo nome preenchido como "Ana", agora vamos atualizá-lo para "Ana Paula". Para visualizar o registro atualizado, pode-se utilizar um comando de consulta semelhante ao utilizado o comando "select from", abordado no tópico Consultando registros.


Bloco de código
languagesql
linenumberstrue
UPDATE PESSOA SET nome=? WHERE idPessoa=1;


Figura 2.3 - Atualizando um registro utilizando o comando 'update'

Excluindo um registro

Na função abaixo, iremos excluir um registro da tabela "telefone" utilizando o comando "delete from". Neste exemplo, também estamos utilizando uma consulta dinâmica para excluir o registro que possui idTel igual a 1. Para visualizar se o registro foi excluído, pode-se utilizar o comando "select from", abordado no tópico Consultando registros.


Bloco de código
languagesql
linenumberstrue
DELETE FROM TELEFONE WHERE idTel=?


Figura 2.4 - Excluindo um registro utilizando o comando 'delete from'


Nesta página

Índice