eBD:QUERY

Sintaxis:

<eBD:QUERY [NAME="nombre"] [DATASOURCE="nombre servidor de datos"] [STATIC="1"]>
  query sql

</eBD:QUERY>

Acción:

Prepara y ejecuta la consulta contra el servidor de datos indicado, dejando el HANDLER preparado para hacer FETCH, identificándolo con el nombre (NAME). Si se especifica el parámetro STATIC, no se evaluarán los carácteres especiales que se encuentren en la query SQL, por lo que no será necesario usar \ para escaparlos ($,%,etc...)

Ejemplo:

<eBD:QUERY NAME="test" DATASOURCE="principal">
Select * from test
</eBD:QUERY>

eBD:FETCHROW

Sintaxis:

<eBD:FETCHROW NAME="nombre" QUERY="nombre de la query"/>

Acción:

Hace FETCHROW del HANDLER identificado con el nombre del atributo QUERY y guarda el registro identificándolo con el nombre (NAME).

Ejemplo:

<eBD:FETCHROW QUERY="test" NAME="T"/>

eBD:INSERT

Sintaxis:

<eBD:INSERT TABLE="nombre de la tabla">
<eBD:DATAFIELD FIELD="nombre" VALUE="valor"/>
  </eBD:INSERT>

Acción:

Realiza una inserción de un registro en la tabla (TABLE), insertando aquellos campos indicados con el tag eBD:DATAFIELD.

Ejemplo:

<eBD:INSERT TABLE="test">
<eBD:DATAFIELD FIELD="nombre" VALUE="mi primer insert"/>
<eBD:DATAFIELD FIELD="publicado" VALUE="S"/>
</eBD:INSERT>

eBD:UPDATE

Sintaxis:

<eBD:UPDATE TABLE="tablename" IDFIELD="campoid" IDVALUE="valorcampoid" [ADDWHERE=""]>
<eBD:DATAFIELD FIELD="fieldname" VALUE="value" [NULL_VALUE="1"]/>
</eBD:UPDATE>

Acción:

Realiza un UPDATE del registro o registros indicado por el campo IDFIELD con valor IDVALUE, modificando aquellos campos que indiquen con eBD:DATAFIELD, de la Tabla TABLE. La opción, NULL_VALUE, usada en el DATAFIELD, permite el borrado de ficheros (también elimina el fichero real).

Ejemplo:

<eBD:UPDATE TABLE="test" IDFIELD="idconte" IDVALUE="1">
<eBD:DATAFIELD FIELD="nombre" VALUE="mi primer update"/>
<eBD:DATAFIELD FIELD="fecha" VALUE="#hoy"/>
<eBD:DATAFIELD FIELD="publicado" VALUE="N"/>
</eBD:UPDATE>

eBD:DELETE

Sintaxis:

<eBD:DELETE TABLE="tablename" IDFIELD="campoid" IDVALUE="valorcampoid" [ADDWHERE=""]/>

Acción:

Realiza un DELETE del registro o registros indicados por el campo IDFIELD con valor IDVALUE.

Ejemplo:

<eBD:DELETE TABLE="test" IDFIELD="idconte" IDVALUE="1"/>

eBD:QUOTE

Sintaxis:

<eBD:QUOTE VAR="nombre" VALUE="valor" />

Acción:
Pone entre comillas simples (') el valor que le hayamos asignado y lo guarda en la variable VAR. También se escaparán las comillas internas para poder usar la variable directamente en una query sin tener que preocuparnos de escapar las comillas a mano, es decir, nos sustituirá (') por (').

Ejemplo:

<eBD:QUOTE VAR="frase" VALUE="esto es el texto"/>

eBD:EXECDATASOURCE

Sintaxis:

<eBD:EXECDATASOURCE DATASOURCE="name" [IGNORE_FILTERS="1|0"ADDWHERE="string" ORDERBY="string" LIMIT="string" COUNT="var name"](lista de parámetros nombre="valor") />

Acción:

Permite ejecutar un DataSource definido en el widget identificado por el nombre "name", o de consultas predefinidas. En el propio tag se pueden especificar la lista de parámetros a pasar en la consulta. El parámetro COUNT recoge el valor de 'select count(*)' si está definido el parámetro LIMIT.

Ejemplo:

<eBD:EXECDATASOURCE DATASOURCE="data" param1="10"/>

eBD:XQUERY

Sintaxis:

<eBD:XQUERY TABLE="tablename"[NAME="queryname"][VAR="varname"][STATIC="1"]> XQuery </eBD:XQUERY>

Acción:

Ejecuta una consulta XQuery contra una Tabla vinculada usando el formato XML El parámetro NAME definirá el nombre con el que se guardará el HANDLER para poder hacer FETCHROW para poder recorrer el resultado de la expresión como una estructura de registros y campos (array de hashes).

El parámetro VAR especifica una variable escalar en la que se almacenará el contenido XML de la respuesta de la query, para poder parsear ese XML manualmente con XMLPARSE.

Si se especifica el parámetro STATIC, eBD no interpretara variables ni expresiones dentro de la XQuery, por lo que se podrán usar los caracteres especiales ($,%,etc..) sin necesidad de escaparlos.

Ejemplo:

<ebd:set var="doc" value="#[eBDDB.xml_document(nombre_tabla)]"/>
<ebd:xquery table="slashdot" name="datos" var="xml">
for \$a in doc("$doc")/rss/channel/item
return
<dato>
<nombre>{data(\$a/title)}</nombre>
<enlace>{data(\$a/link)}</enlace>
</dato>
</ebd:xquery>

eBD:TRANSACTION

Sintaxis:

<eBD:TRANSACTION ISOLATION="isolation_value">
COMMIT o ROLLBACK
</eBD:TRANSACTION>

Acción:

Permite una ejecución atómica y confiable en presencia de fallos y una correcta ejecución en presencia de accesos de usuarios múltiples.

La base de datos ha de ser (o convertirse) en innoDB.

Los valores de ISOLATION pueden ser:

  • READ UNCOMMITED
  • READ COMMITED
  • REPETEABLE READ
  • SERIALIZABLE

Ejemplo:

<eBD:TRANSACTION ISOLATION="SERIALIZABLE">
<eBD:INSERT TABLE="tbl_News" DATASOURCE="datasource_A">
<eBD:DATAFIELD FIELD="Title" VALUE="$title"/>
<eBD:DATAFIELD FIELD="Date" VALUE="#[eBDDate.CurrentDate]"/>
</eBD:INSERT>
<eBD:IF EXPR="#[eBDDB.ErrCode]<>0">
<eBD:ROLLLBACK/>
<eBD:ELSE>
<eBD:INSERT TABLE="tbl_Line_News" DATASOURCE="datasource_A">
<eBD:DATAFIELD FIELD="NewsContent" VALUE="$content_txt"/>
</eBD:INSERT>
<eBD:IF EXPR="#[eBDDB.ErrCode]<>0">
<eBD:ROLLLBACK/>
<eBD:IF>
</eBD:ELSE>
</eBD:IF>
</eBD:TRANSACTION>

eBD:COMMIT

Sintaxis:

<eBD:COMMIT/>

Acción:

Al final de una transacción, la finaliza y pone todos los cambios visibles a otros usuarios.

Ejemplo:

<eBD:TRANSACTION ISOLATION="SERIALIZABLE">
<eBD:INSERT TABLE="tbl_News" DATASOURCE="datasource_A">
<eBD:DATAFIELD FIELD="Title" VALUE="$title"/>
<eBD:DATAFIELD FIELD="Date" VALUE="#[eBDDate.CurrentDate]"/>
</eBD:INSERT>
<eBD:IF EXPR="#[eBDDB.ErrCode]<>0">
<eBD:ROLLLBACK/>
<eBD:ELSE>
<eBD:COMMIT/>
</eBD:ELSE>
</eBD:IF>
</eBD:TRANSACTION>

eBD:ROLLBACK

Sintaxis:

<eBD:ROLLBACK/>

Acción:

Revierte una transacción hasta el inicio de la transacción o hasta un punto de retorno de la transacción.

Ejemplo:

(Ver ejemplo de eBD:TRANSACTION y eBD:COMMIT)