Las Tablas son los elementos fundamentales en los que se almacena la información de una base de datos. Una Tabla es un conjunto de datos (registros), los cuales comparten la misma estructura. Esta estructura se divide en varios campos, de forma que todos los registros de una tabla tienen los mismos campos.

Los campos son las unidades básicas de información, y cada campo puede contener datos de diferentes tipos. Hay campos para guardar textos, otros para guardar números, fechas, etc…. En Kanecode se han definido todos los tipos de datos comunes de cualquier base de datos (textos, numéricos, fechas, horas, booleanos…) y adicionalmente se han definido un conjunto de tipos de datos específicos para la creación de aplicaciones web (hipervínculo, email, imagen, flash…).

1200

Planificación y creación de tablas

Diseñar una tabla es un trabajo importante. El primer paso será saber qué información se precisa, que tipo de datos contendrá cada campo y para qué fin se utilizará la tabla creada. Para determinar el tipo de datos de un campo el administrador deberá tener en cuenta el tipo de valores que desea permitir, por ejemplo, no es posible almacenar texto en un campo cuyo tipo de datos sea numérico.
Desde el entorno de administración de Kanecode se pueden crear tablas en cualquiera de los servidores de datos disponibles para el proyecto. Todas las tablas de definen de la misma forma, independientemente del driver de base de datos que se esté utilizando.

Para crear una tabla, simplemente se debe indicar el nombre y el servidor de datos. Las nuevas tablas se generan automáticamente en la base de datos sin ningún campo*. Una vez creadas, el administrador debe definir su estructura creando los campos que forman la tabla uno a uno.

Para cada campo que se crea en la tabla se debe indicar:
Nombre Nombre de campo.
Tipo Tipos de datos que debe almacenar.
Longitud Longitud máxima de los valores que va a almacenar (sólo es aplicable en algunos tipos de datos).
Posición Permite reordenar los campos.
Obligatorio Indica si el usuario debe introducir un valor obligatoriamente.
Único Indica si el valor de este campo se puede repetir en otros registros o no.
Breve El campo debe aparecer en la versión “breve” del registro (el listado que aparece en la pantalla de 'Editar Datos').
Protegido Los ficheros almacenados en el campo deben estar protegidos por usuario.
(Solo los podrá descargar el usuario que tenga acceso al registro)
Valor por defecto Valor que debe tener el campo por defecto (sólo es aplicable en algunos tipos de datos).

📘

info:

Al crear una tabla se crean 5 campos internos, necesarios para el control de registros de Kanecode. Estos campos no se ven en la estructura de la tabla, pero si existen en la base de datos real.

1517
Los posibles tipos de datos para los campos son:
Texto Corto Texto que no deberá exceder del número de caracteres que se indiquen en la opción longitud. No puede contener saltos de línea.
Texto Largo Texto en el que no se especifica la longitud. Puede contener saltos de línea, pero no opciones de estilo (negrita, itálica, etc…).
Booleano De tipo SI/NO. Aparece una casilla de verificación que deberá dejarse activada o desactivada según el valor que se desee.
Autoincremento Número que va incrementándose automáticamente al ir insertando registros.
Núm. Entero Número sin decimales.
Núm. Decimal Número con decimales.
Fecha Fecha en formato dd/mm/aaaa (o el que indique la localización actual).
Hora Hora en formato 00:00:00 (los segundos son opcionales)
Fecha/Hora Fecha y hora en formato dd/mm/aaaa 00:00:00 (o dependiendo de la localización).
Hipervínculo Una URL absoluta. Los esquemas soportados son:
Http, https, ftp, imap, ldap, mailto, nfs, pop, telnet, finger, smb, svn.
eMail Una dirección de correo electrónico
Contraseña Texto corto que se almacena encriptado. No se puede desencriptar, solo es útil para guardar contraseñas en tablas de usuarios remotos.
HTML Texto largo con formato html. Se edita usando el editor HTML de Kanecode.
HTML Externo Parte especificada de una URL externa, comprendida entre dos TAGS (fragmentos de código HTML).
Imagen Archivo de tipo imagen (.gif, .jpg o .png). Al visualizar el valor se mostrará la imagen.
Fichero Cualquier tipo de archivo. Al visualizar el valor se mostrará un enlace al archivo que el usuario podrá abrir o descargar.
Flash Archivo de tipo flash (.swf). Se puede definir el tamaño para visualizarlo y parámetros adicionales en el momento de subir el archivo.
Listado Seleccionar un valor entre un conjunto acotado de posibilidades. Se determinarán los valores que aparecerán en el desplegable.
Audio Permite reproducir archivos de audio en formato MP3(*)
Vídeo Permite reproducir archivos de video en formato FLV(*)

📘

Info:

(*) Se utiliza un reproductor flash para mostrar el contenido.

En una tabla siempre debe haber un campo, o combinación de campos, cuyo valor identifique de forma única cada registro de la misma tabla. Este campo, o campos, podrán definirse como Clave Principal. Al marcar un campo como clave automáticamente este será obligatorio, además se creará un índice sobre este campo. Para definir los campos clave se debe usar el formulario que aparece al pulsar el botón.

Vinculación de tablas

Las aplicaciones generadas con Kanecode también pueden utilizar tablas que ya existan en la base de datos, ya sea porque se han creado manualmente o porque son tablas que pertenecen a otras aplicaciones. Para poder usarlas, primero se deben vincular desde Kanecode, para que el sistema las pueda reconocer

377

La vinculación de una tabla permite la lectura de datos en la tabla origen, pero también se puede agregar, eliminar o editar sus datos a través de la tabla vinculada. También es posible realizar algunas modificaciones sobre la estructura de una tabla vinculada, sin que estas afecten a la tabla base (cambiar opciones en los campos como marcar como breve, especificar un valor por defecto). Se pueden también crear nuevos campos en la tabla vinculada, sin embargo, los nuevos campos se gestionarán desde la nueva tabla aunque los datos que estos contengan se almacenen en la tabla de origen. De la misma manera, al borrar un campo en una tabla vinculada, este no se elimina en la tabla origen.

🚧

Nota:

Al eliminar una tabla vinculada, se elimina el vínculo con la tabla, pero no la tabla original.

En Kanecode hay dos modos de vinculación de tablas:

En Kanecode hay dos modos de vinculación de tablas:

 1.	Convertir a formato Kanecode: Modifica la estructura de la tabla añadiendo los campos propios de Kanecode, de forma que se pueda usar la tabla como si se hubiera creado con Kanecode.

 2.	Mantener estructura actual: Mantiene la estructura de la tabla (no añade ningún campo). Permite usar la tabla normalmente, aunque se pierden las funcionalidades que aportan los campos ocultos de Kanecode. Concretamente, con una tabla vinculada manteniendo la estructura no se puede:

• Conocer la fecha de inserción / modificación de un registro.
• Filtrar los permisos de una vista en función del usuario que ha creado el registro.
• Usar el flag “publicado” que se añade automáticamente en todas las tablas creadas desde Kanecode

Al vincular una tabla manteniendo la estructura no se añaden los campos ocultos, con lo que para poder identificar los registros es obligatorio seleccionar los campos clave de la tabla. Esto se realiza en el momento de vincularla, pudiendo seleccionar más de un campo como clave.
Si se desea vincular una tabla que se ha creado con Kanecode (ya sea desde otro proyecto, o desde otra instalación de Kanecode que utilice la misma base de datos), es importante vincularla utilizando la opción de *Convertir a formato*Kanecode. A pesar de que la tabla ya se encuentre en formato Kanecode es conveniente usar este modo de vinculación, ya que no se van a duplicar los campos ocultos pero si se podrán usar como si se hubiera creado desde el mismo proyecto.

Al vincular una tabla, Kanecode analiza y registra en el sistema su estructura. Esto provoca que si se modifica la estructura de la tabla original después de haberla vinculado (usando algún cliente de base de datos independiente, por ejemplo), Kanecode no se dará cuenta del cambio, con lo que puede haber problemas de inconsistencia de datos. Para solucionar este problema se debe actualizar la vinculación con el botón.

El formulario de actualizar la vinculación de una tabla ofrece dos listados de campos, uno con los campos reales y otro con los que se encuentran registrados en el sistema. Usando ese formulario se debe seleccionar, para cada uno de los campos que no coinciden si se trata de un campo nuevo (se registrará como un campo recién creado), si se trata de algún campo que ya existía pero que ha cambiado de nombre (se actualizará el registro de ese campo). Los campos que estaban registrados pero que no tienen coincidente en la tabla real serán eliminados del registro

748

Tablas XML

XML se ha convertido en el mecanismo más común para almacenar datos en ficheros de texto plano, y en el formato estándar para el intercambio de información entre sistemas. La necesidad de combinar información almacenada en diferentes repositorios de datos se ha convertido en un punto clave de los sistemas de integración.

Las Tablas XML, ofrecen la posibilidad de vincular objetos externos y tratarlos desde la aplicación como si fuesen Tablas relacionales, permitiendo acceder a esta información desde secciones de tipo Tabla, Buscadores, Calendarios, etc...
Gracias al uso de XML como formato estándar de almacenamiento de datos, el desarrollador puede vincular URLs externas, llamadas a WebServices, consultas LDAP o el resultado de la ejecución de un Stored Procedure como tablas XML, y usar esos datos normalmente desde Kanecode sin preocuparse de su origen real.

Podemos ver las siguientes funciones:
Archivo Local Crea una Tabla con los datos almacenados en un fichero XML o Microsoft Excel subido al servidor.
URL externa Crea una Tabla a partir de un fichero XML accesible mediante una URL externa
HTTP.
Web Service Crea una Tabla con los datos obtenidos como resultado de la ejecución de un Web service externo.
LDAP Crea una Tabla a partir de los objetos recibidos al hacer una consulta contra un Directorio LDAP.
Procedimiento SQL Crea una Tabla a partir de los datos recibidos al ejecutar una consulta SQL o un procedimiento almacenado
530
Dependiendo del tipo de tabla XML escogido, se nos mostrará una serie de opciones de configuración, estas pueden ser:
Caché Tiempo de expiración del cache.
Origen de Datos Depende del tipo de tabla XML escogido (por ejemplo: Webservice/ Operaciones).
Eventos Posibilidad de crear llamadas a la fuente del origen de datos para crear eventos para Insertar, Actualizar y/o Borrar datos del origen.
Parámetro Valores de los parámetros que deba recibir el origen de datos.
Respuesta Parámetro de la respuesta.

Al inicio del mapa XML existe la opción "Generar el archivo NUX con todos los nodos" que permite generar el archivo NUX con todos los nodos de la tabla o solo seleccionados.
Al realizar la vinculación, el desarrollador debe seleccionar aquellos nodos del árbol XML que formarán los "registros" de su tabla XML, y aquellos nodos que forman los "campos" de la tabla, 'arrastrando' cada elemento en el 'Mapa XML' hacia los campos de la derecha.

530

Edición de los datos

En la pantalla “Editar Datos” aparece el listado de registros almacenados en la tabla. Estos aparecen en su versión “breve”, es decir, para cada registro se mostrarán únicamente los campos marcados como “breve” en la estructura de la tabla.
Al añadir un registro aparece un formulario con la totalidad de campos que componen el registro. Para que el registro se grabe correctamente deben introducirse, como mínimo, los datos que sean obligatorios y con el tipo de datos que corresponda a cada campo. Al publicar los datos en las páginas (véase “Secciones”) únicamente se mostrarán al usuario los registros que tengan activada la casilla 'publicado'.
En el caso de un tipo de campo HTML en el formulario aparece el botón correspondiente al Editor HTML de Kanecode. Si la tabla incluye un campo HTML externo aparece el botón que permite editar las opciones del campo. Cuando se edite un campo de cualquiera de estos dos tipos, deberán guardarse las opciones modificadas desde el editor del campo y, además, con el botón Guardar del formulario del registro.

949

Campos calculados

En Kanecode se puede crear un campo cuyo valor se obtenga a partir de un cálculo que se realizará sobre otro campo de la misma tabla. A estos campos se les llama “Campos Calculados”.

Hay varios tipos de campos calculados, dependiendo del tipo de datos que se quiera obtener. No todos los tipos de datos soportan la definición de campo calculado. Para definir un campo calculado se usará el formulario que aparece al pinchar sobre el botón. También se pueden generar campos calculados usando código eBDML, dando así total libertad al programador para calcular el valor de los nuevos campos. En este caso, los valores que se utilizarán para realizar los cálculos, se recogen mediante la etiqueta eBDML.

437

Para que Kanecode compruebe si existe o no realmente debemos acceder al diseño de esa tabla y pulsar sobre el icono de 'Sincronizar con el servidor'.

En este formulario se puede seleccionar entre 3 tipos de campos calculados:

Tipo de campo calculadoCampos aplicablesCampos de origen
Tamaño de un fichero (obtiene el tamaño en bytes, Kbytes o Mbytes de un fichero)Texto Corto
Número entero
Número decimal
Imagen
fichero
flash
audio
Texto o info de un PDF (extrae el texto de un documento en formato PDF)Texto largo
HTML
Fichero
Modificación de imagen (genera una imagen escalonada y/o recortando la imagen original)ImagenImagen
Código eBDMLTodosTodos

Eventos

Los Eventos permiten definir un conjunto de acciones sobre un elemento, que se ejecutarán cuando se cumplan ciertas situaciones. En el caso de las Tablas, se puede definir que un evento se ejecute:

• Antes o Después de Insertar un registro
• Antes o Después de Modificar un registro
• Antes o Después de Borrar un registro

Una vez determinado el nombre del evento y en qué momento se ejecutará, se programaran las acciones que se deben llevar a cabo. Para más información sobre las acciones consultar el apartado “Eventos Globales”.

Índices

Para acelerar las búsquedas, la ordenación de los registros o las consultas con referencias cruzadas, el administrador puede crear índices sobre una tabla. Se pueden crear varios índices sobre una misma tabla, y cada índice puede estar formado por uno o más de un campo. Para ello el administrador indicará el nombre del índice, y el campo o campos sobre los que se creará.

Los índices se crean directamente sobre la tabla real, con el fin de que el motor de la base de datos utilice los índices para optimizar las consultas que se realicen sobre esa tabla.

405

Visibilidad

Cuando activamos la visibilidad de una Tabla, aquellos usuarios que no cumplan la regla de visibilidad no podrán ver sus datos, como es lógico, ni hacer por medio de eBDML ningún eBD:INSERT, eBD:UPDATE o eBD:DELETE; pero se ha de tener en cuenta que si podrán actuar en la tabla mediante eBD:QUERY, ya que la query es enviada directamente al servidor de datos no pasando por las reglas de visibilidad.

Cambio de servidor

Kanecode ofrece la posibilidad de mover tablas SQL, de un servidor de datos a otro. Para ello dispone de un botón en el panel superior que inicia una serie de acciones para mover la tabla.

🚧

Nota

No se debe mover tablas XML o se producirá un 'Internal Server Error' grave, que obligará al borrado de la tabla en el catálogo para solucionarlo.

Al seleccionar un nuevo servidor de datos de destino, nos aparecerá un aviso si esta tabla no existe en esa base de datos. En caso de que no exista esa tabla en el servidor de datos de destino aparecerá una ventana informándonos si queremos crearla.

En el caso de crear la tabla en el nuevo servidor de datos, podremos escoger que campos deseamos crear, así como especificar el tipo de campos.

745

Para finalizar, pulsamos sobre el botón de 'Guardar cambios' y luego al de 'cerrar' la ventana.