Riferimento App ML - Database


La Proprietà "database".

La proprietà "database" definisce un database come origine dati. Ha le seguenti proprietà secondarie:

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

Dati da un database

Questo modello recupera i record contenenti Cliente, Città e Paese da una tabella Cliente in un database SQL:

Esempio

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

Filtra restrizioni

Per consentire agli utenti di filtrare i dati, puoi aggiungere informazioni sul filtro al modello:

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

Restrizioni di ordinamento

Per consentire agli utenti di ordinare i dati, puoi aggiungere informazioni di ordinamento al modello:

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

Aggiorna restrizioni

Per consentire agli utenti di aggiornare i dati, puoi includere le informazioni sull'aggiornamento nel modello: 

Esempio

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

Per impostazione predefinita, AppML ti consente di filtrare, ordinare o aggiornare i dati, solo che sono specificati nel modello.


Connessioni al database

Le connessioni al database sono definite in 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"
    }
]
}

Il file di configurazione può contenere molte connessioni al database.


Creazione di database

Poiché AppML consente di eseguire istruzioni SQL prima dell'avvio dell'applicazione, è possibile utilizzarlo per creare un database, se necessario:

Modello

{
"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)"
]
}}

Perfetto per la prototipazione rapida!