Meta-datos de las fuentes de datos

Todas las fuentes de datos deben proporcionar funciones para acceder a su meta-datos. Si la fuente de datos es una base de datos, estos meta-datos son los nombres de las tablas, las columnas, derechos de usuarios, y cosas así. El resultado de una consulta de meta información se representa como Gda_Recordset. El problema es que la mayor parte del tiempo el cliente solo esta interesado en alguna parte de esta información. El cliente quiere consultar a la fuente de datos acerca de los índices de una tabla, no todos los índices de todas las tablas. Por lo tanto es posible enviar restricciones a las consultas de meta-datos. Pero esto es sumamente complicado debido al hecho de que cada consulta deberá tener sus propias restricciones. La siguiente lista muestra que tipos de consulta están implementados y que restricciones son validas para cada consulta. Las restirciones de envían como parejas nombre-valor. El nombre es de tipo enumerado y el valor es una cadena de texto. La función de consulta es una función con numero de argumentos variable y la lista de argumentos debe finalizar con un variable enumerada de valor 0.

La siguiente tabla muestra las restricciones mas corrientes y cuando usarlas. algunos esquemas pueden requerir que entregue una restricción.

Tabla 5-1. Significado de las restricciones estándar

RestricciónUsoObservaciones
GDA_Connection_OBJECT_CATALOGUsada para especificar la base de datos 
GDA_Connection_OBJECT_SCHEMAUsada para especificar el propietario 
GDA_Connection_OBJECT_NAMEUsada para indicar el nombre del objeto a consultar (tabla, ...) 
GDA_Connection_EXTRA_INFOActivela para obtener información detallada del proveedorDele como valor una cadena no nula (eje. "")

La siguiente tabla muestra los esquemas estándar que debe soportar cada proveedor Gda, aunque algún proveedor especifico puede no soportar alguno de ellos. Para comprobar si se soporta un esquema, vea la función gda_connection_supports().

Tabla 5-2. Esquemas estándar y restricciones soportadas

Tipos de objetoIdentificadorRestricciones soportadasCampos devueltosInformación adicional
TablasGDA_Connection_GDCN_SCHEMA_TABLESGDA_Connection_OBJECT_NAME, GDA_Connection_OBJECT_CATALOG, GDA_Connection_OBJECT_SCHEMA, GDA_Connection_EXTRA_INFOnombre, comentariosnombre, propietario, comentarios, definición Sql
Tabla padre (para los proveedores que soportan la herencia de tablas)GDA_Connection_GDCN_SCHEMA_TAB_PARENTSGDA_Connection_OBJECT_NAME (required), GDA_Connection_OBJECT_CATALOGNombre, orden de la herenciaNo soportada
VistasGDA_Connection_GDCN_SCHEMA_VIEWSGDA_Connection_OBJECT_NAME, GDA_Connection_OBJECT_CATALOG, GDA_Connection_OBJECT_SCHEMA, GDA_Connection_EXTRA_INFOnombre, comentariosnombre, propietario, comentarios, definición Sql
Columnas de la tabla (o vista)GDA_Connection_GDCN_SCHEMA_COLUMNSGDA_Connection_OBJECT_NAME (required), GDA_Connection_OBJECT_CATALOG, GDA_Connection_OBJECT_SCHEMA, GDA_Connection_COLUMN_NAMEnombre, tipo, tamaño, precisión, posible nulo, es clave, valor por omisión, comentariosNo soportado
SecuenciasGDA_Connection_GDCN_SCHEMA_SEQUENCESGDA_Connection_OBJECT_NAME, GDA_Connection_OBJECT_CATALOG, GDA_Connection_OBJECT_SCHEMA, GDA_Connection_EXTRA_INFOnombre, comentariosnombre, propietarios, comentarios, definición Sql
ProcedimientosGDA_Connection_GDCN_SCHEMA_PROCSGDA_Connection_OBJECT_NAME, GDA_Connection_OBJECT_CATALOG, GDA_Connection_OBJECT_SCHEMA, GDA_Connection_EXTRA_INFONombre, Id del objeto, comentariosNombre, Id del objeto, propietario, comentarios, numero de argumentos, definición Sql
Parametros del procedimientoGDA_Connection_GDCN_SCHEMA_PROC_PARAMSGDA_Connection_OBJECT_NAME (required)Uso (entrada, salida o E/S), tipoNo soportado
AgregadosGDA_Connection_GDCN_SCHEMA_AGGREGATESGDA_Connection_OBJECT_NAME, GDA_Connection_OBJECT_CATALOG, GDA_Connection_OBJECT_SCHEMA, GDA_Connection_EXTRA_INFONombre, Id del objeto, tipo de entrada, comentariosNombre, Id del objeto, tipo de entrada, comentarios, definición Sql
TiposGDA_Connection_GDCN_SCHEMA_PROV_TYPESGDA_Connection_OBJECT_NAME, GDA_Connection_OBJECT_CATALOG, GDA_Connection_OBJECT_SCHEMA, GDA_Connection_EXTRA_INFONombre, propietario, comentarios, tipo Gda, tipo de proveedornombre, comentarios

Debe prestar especial atención a las restirciones usadas (tanto en las aplicaciones cliente, como en los proveedores Gda), ya que es un requisito impuesto a los proveedores devolver un error si se envía una restricción invalida al servidor. Esto es especialmente importante, ya que hay esquemas que pueden significar diferentes cosas en función del conjunto de restricciones usadas. Como puede imaginar, esto puede llevar aq ue el cliente reciba datos no solicitados.