Componentes no visuales de acceso a datos

La paleta «Data Access» contiene todos los componentes no visuales que usted puede poner en su aplicación para conectarse a una base de datos. Los componentes más importantes incluyen:

TSession

Un alias se conecta a una «sesión», representada por el componente TSession. Esta sesión es una conexión Física a la base de datos. Los programas de Borland pueden compartir sesiones globalmente, y cada programa puede tener cualquier numero de sesiones simultaneas.

De este modo, se puede compartir una sola conexión (sesión) a la base de datos para economizar licencias, sin importar cuantos ejecutables este utilizando para accesar los datos, o si las licencias por conexión no son limitadas en su base de datos, puede utilizar varias sesiones en una sola aplicación para programar sus consultas con multitarea.

TDatabase

Es la representación de una base de datos. Tal como en su servidor de SQL usted puede crear mas de un «contenedor de base de datos», Delphi puede compartir una conexión (TSession) entre varios contenedores de bases de datos (TDatabase).

Tal como en la sesión, si usted no pone un TDatabase en su aplicación Delphi especifica uno en la variable de objeto global «Database».

TTable

Es la representación de una tabla, y es a lo que están acostumbrados los programadores en Clipper. TTable representa una tabla entera en Delphi.

TTable contiene información del tipo de tabla (que solo se usa en tablas locales – paradox, dbase, etc) y del nombre del índice, así como filtros. TTable tiene entre sus métodos, First, Next, Last, etc.

TQuery

Es la representación de cualquier comando de SQL que regresa un cursor de SQL (ya sea de tipo SELECT o un «Stored Procedure» – vea TStoredProc).

Este cursor de SQL se comporta como una tabla. Los programadores con experiencia en SQL encontraran a TQuery muy útil, ya que se comporta como un TTable (en el sentido de que tiene First, Next, Last, etc), pero al mismo tiempo es un comando de SQL.

El programador de SQL no tiene que hacer «Fetch». Además, cuando el usuario edita campos asociados a un TQuery, Delphi se encarga de generar los comandos «UPDATE» y «DELETE» si el resultado del Query es Read/Write (vea TUpdateSQL).

TDataSource

Es una representación del «origen de los datos». DataSource no requiere el BDE, pero es el componente que «mapea» los componentes visuales de base de datos con los no visuales.

El hacer un componente intermedio es importante porque de este modo podemos tener varias representaciones de los mismos datos sin tener que «atar» la representación de los datos en pantalla a la representación «física» de los datos.

Un DataSource se conecta a su vez a cualquier componente tipo Dataset, como TQuery, TTable, TClientDataset, o el que usted haya creado! DataSource nos permite ser consistentes en la representación de nuestros datos en pantalla sin preocuparnos de donde vengan los mismos (Tablas, queries, o nuestros propios métodos).

TUpdateSQL

En SQL-92, existe una limitación en cuanto a los enunciados «Select». Existen muchas circunstancias en las cuales SQL regresara un cursor de lectura únicamente, en vez del cursor de Lectura/Escritura que nos gustaría obtener.

Por ejemplo, si el enunciado SQL especifica una unión de tablas, SQL nos devolverá un cursor que podemos representar como el resultado de un Query en Delphi, pero no podremos editar el resultado.

Obviamente esta limitación es muy severa si queremos hacer ciertas «maravillas» con nuestra aplicación (queries editables con referencias en texto es una de estas cosas).

TStoredProc

Aunque TQuery puede ejecutar un stored procedure que devuelva un valor (y tenemos que usar un TQuery si queremos recuperar ese valor), a veces el stored procedure no devuelve nada.

TQuery espera un valor de regreso, y nos devolverá un error si el servidor no devuelve un valor. Por este motivo, para esos procedimientos necesitamos un objeto que nos permita ejecutar un comando SQL sin esperar respuesta. TStoredProc es ese comando.

Existen más componentes no visuales de acceso a datos, pero estos son suficientes para hacer muchas aplicaciones cliente servidor sin problemas. Cuando veamos «Multi-Tier» y Objetos de Negocios (Business Objects), que es una nueva capacidad de Delphi 3 Cliente/Servidor, veremos otros modos de acceso de bases de datos un poco más «indirectos».