Todas la fuentes de datos deben proveer funciones para acceder a su meta-información. Si las fuentes de datos son bases de datos, la metainformación son: los nombre de las tablas, columnas, derechos de los usuarios, y demás. Los resultados de una consulta de metainformación se representan como un GdaRecordset . El problema es que gran parte del tiempo el cliente solo está interesado en alguna parte de esta información. Por ejemplo, el cliente quiere consultar a la fuente de datos sobre el indice de una tabla no sobre el de todas la tablas. De todas maneras es posible pasarle concrecciones a una consulta de metainformación. Pero de hecho es bastante más complicado, puede ser que cada consulta necesite tener diferentes concrecciones. La siguiente tabla muestra que tipos de consulta están implementados y qué concrecciones son válidas para cada consulta. La concrección se pasa como pares nombre-valor. El nombre es un enum y el valor es una cadena de caracteres. Las función consulta es una función variable y la lista de argumentos debe cerrarse con un enum de valor 0.
La tabla siguiente muestra las concrecciones más usadas y cuando usarlas. Algunos de los esquemas pueden requerir que diera usted una concrección.
Tabla 5-2. Significado de las Principales Concrecciones Estandard
Concrección | Uso | Observaciones |
---|---|---|
GDA_Connection_OBJECT_CATALOG | Usada para especificar la Base de Datos | |
GDA_Connection_OBJECT_SCHEMA | Usada para especificar el propietario | |
GDA_Connection_OBJECT_NAME | Usada para especificar el nombre del objeto a consultar (tabla, ...) | |
GDA_Connection_EXTRA_INFO | Configurable para obtener más información del proveedor | Pónga a una cadena de caracteres no nula (i.e "") |
La siguiente tabla muestra los esquemas "estandar" que deben estar soportados por cada proveedor GDA, además un proveedor específico no tiene porque soportar uno de éstos. Para comprobar que cualquier esquema está soportado, vea la función gda_connection_supports().
Tabla 5-3. Esquemas Estardar y Concrecciones Soportadas
Tipo de Objecto | Identificador GDA | Concrecciones Soportadas | Campos Devueltos | Información Extra |
---|---|---|---|---|
Tables | GDA_Connection_GDCN_SCHEMA_TABLES | GDA_Connection _OBJECT_NAME, GDA_Connection _OBJECT_CATALOG, GDA_Connection _OBJECT_SCHEMA, GDA_Connection _EXTRA_INFO | name, comments | name, owner, comments, SQL definition |
Tables' parents (para proveedores que soporten herencia de tablas) | GDA_Connection_GDCN_SCHEMA_TAB_PARENTS | GDA_Connection _OBJECT_NAME (requirido), GDA_Connection _OBJECT_CATALOG | name, order of inheritance | No Soportado |
Views | GDA_Connection_GDCN_SCHEMA_VIEWS | GDA_Connection _OBJECT_NAME, GDA_Connection _OBJECT_CATALOG, GDA_Connection _OBJECT_SCHEMA, GDA_Connection _EXTRA_INFO | name, comments | name, owner, comments, SQL definition |
Table (o views) columns | GDA_Connection_GDCN_SCHEMA_COLUMNS | GDA_Connection _OBJECT_NAME (required), GDA_Connection _OBJECT_CATALOG, GDA_Connection _OBJECT_SCHEMA, GDA_Connection _COLUMN_NAME | name, type, size, precision, nullable, is key, default value, comments | No soportado |
Sequences | GDA_Connection_GDCN_SCHEMA_SEQUENCES | GDA_Connection _OBJECT_NAME, GDA_Connection _OBJECT_CATALOG, GDA_Connection _OBJECT_SCHEMA, GDA_Connection _EXTRA_INFO | name, comments | name, owner, comments, SQL definition |
Procedures | GDA_Connection_GDCN_SCHEMA_PROCS | GDA_Connection _OBJECT_NAME, GDA_Connection _OBJECT_CATALOG, GDA_Connection _OBJECT_SCHEMA, GDA_Connection _EXTRA_INFO | name, object Id, comments | name, object Id, owner, comments, number of arguments, SQL definition |
Procedures' parameters | GDA_Connection_GDCN_SCHEMA_PROC_PARAMS | GDA_Connection _OBJECT_NAME (required) | Usage(in, out or inout), type | No Soportado |
Aggregates | GDA_Connection_GDCN_SCHEMA_AGGREGATES | GDA_Connection _OBJECT_NAME, GDA_Connection _OBJECT_CATALOG, GDA_Connection _OBJECT_SCHEMA, GDA_Connection _EXTRA_INFO | name, object Id, In type, comments | name, object Id, In type, owner, comments, SQL definition |
Types | GDA_Connection_GDCN_SCHEMA_PROV_TYPES | GDA_Connection _OBJECT_NAME, GDA_Connection _OBJECT_CATALOG, GDA_Connection _OBJECT_SCHEMA, GDA_Connection _EXTRA_INFO | name, owner, comments, Gda type, provider type | name, comments |
Debe prestar especial atención a las concrecciones usadas ( tanto en el cliente como en el servidor), porque se necesitan para que los proveedores devuelvan un error si se le pasa una concrección no válida al servidor. Esto es especialmente importante, desde que hay esquemas que pueden significar diferentes cosas dependiendo del conjunto de concrecciones usadas. Como usted se puede imaginar, esto podría significar que el cliente reciba datos que no han sido solicitados.