Referência de App ML - Bancos de dados


A propriedade "banco de dados"

A propriedade "banco de dados" define um banco de dados como fonte de dados. Possui as seguintes subpropriedades:

Element Description
"connection" The name of a database connection
"execute" Array of SQL statements to be executed before data retrieval (optional)
"keyfield" The key field for the main table (optional)
"maintable" The main table for this application (optional)
"orderby" A fixed SQL orderby clause for the application (optional)
"sql" The SQL statement for retrieving data

Dados de um banco de dados

Este modelo busca registros contendo Cliente, Cidade e País de uma tabela Cliente em um banco de dados SQL:

Exemplo

{
"database": {
    "connection": "mysql",
    "sql"       : "SELECT CustomerName, City, Country FROM Customers",
    "orderby"   : "CustomerName"
}
}

Filtrar Restrições

Para permitir que os usuários filtrem dados, você pode adicionar informações de filtro ao modelo:

"filteritems" : [
    {"item" : "CustomerName", "label" : "Customer"},
    {"item" : "City"},
    {"item" : "Country"}]

Restrições de classificação

Para permitir que os usuários classifiquem dados, você pode adicionar informações de classificação ao modelo:

"sortitems" : [
    {"item" : "CustomerName", "label" : "Customer"},
    {"item" : "City"},
    {"item" : "Country"}]

Atualizar restrições

Para permitir que os usuários atualizem dados, você pode incluir informações de atualização no modelo: 

Exemplo

"updateItems" : [
    {"item" : "CustomerName"},
    {"item" : "Address"},
    {"item" : "PostalCode"},
    {"item" : "City"},
    {"item" : "Country"}]

Por padrão, o AppML permite filtrar, classificar ou atualizar dados, somente quando especificado no modelo.


Conexões de banco de dados

As conexões de banco de dados são definidas em appml_config.php :

appml_config.php

<?php echo("Access Forbidden");exit();?>
{
"dateformat" : "yyyy-mm-dd",
"databases": [
    {
    "connection" : "mysql",
    "host"       : "127.0.0.1:3306",
    "dbname"     : "Northwind",
    "username"   : "myUserId",
    "password"   : "myPassword"
    },
    {
    "connection" : "googleDB",
    "host"       : "192.168.1.1:3306",
    "dbname"     : "Northwind",
    "username"   : "myUserId",
    "password"   : "myPassword"
    },
    {
    "connection" : "amazonDB",
    "host"       : "mydbinstance.amazon.com:3306",
    "dbname"     : "Northwind",
    "username"   : "myUserId",
    "password"   : "myPassword"
    },
    {
    "connection" : "azureDB",
    "host"       : "azure.cloudapp.net",
    "dbname"     : "Northwind",
    "username"   : "myUserId",
    "password"   : "myPassword"
    }
]
}

O arquivo de configuração pode conter muitas conexões de banco de dados.


Criando Bancos de Dados

Como o AppML permite executar instruções SQL antes que o aplicativo seja iniciado, você pode usar isso para criar um banco de dados, se necessário:

Modelo

{
"database" : {
"connection" : "myCDs",
"execute" : [
"DROP TABLE IF EXISTS CD_Catalog",
"CREATE TABLE IF NOT EXISTS CD_Catalog (CDID INT NOT NULL AUTO_INCREMENT,PRIMARY KEY (CDID),Title NVARCHAR(255),Artist NVARCHAR(255),Country NVARCHAR(255),Price NUMBER)"
]
}}

Perfeito para prototipagem rápida!