Referencia de App ML - Bases de datos


La propiedad "base de datos"

La propiedad "base de datos" define una base de datos como fuente de datos. Tiene las siguientes subpropiedades:

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

Datos de una base de datos

Este modelo obtiene registros que contienen Cliente, Ciudad y País de una tabla de Cliente en una base de datos SQL:

Ejemplo

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

Restricciones de filtro

Para permitir que los usuarios filtren datos, puede agregar información de filtro al modelo:

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

Restricciones de clasificación

Para permitir que los usuarios ordenen datos, puede agregar información de ordenación al modelo:

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

Restricciones de actualización

Para permitir que los usuarios actualicen los datos, puede incluir información de actualización en el modelo: 

Ejemplo

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

De forma predeterminada, AppML le permitirá filtrar, ordenar o actualizar datos, solo que se especifica en el modelo.


Conexiones de base de datos

Las conexiones de la base de datos se definen en 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"
    }
]
}

El archivo de configuración puede contener muchas conexiones de base de datos.


Creación de bases de datos

Dado que AppML le permite ejecutar instrucciones SQL antes de que se inicie la aplicación, puede usar esto para crear una base de datos si es necesario:

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

¡Perfecto para la creación rápida de prototipos!