Tablas temporales en memoria “ClientDataSet” en Delphi

| 2013-03-3 | 1 Comentario »

¿Que son las tablas?
Son las encargadas de almacenar los datos. El almacenamiento de los mismos se realiza de forma organizada gracias a la estructura de las tablas, la buena estructuración de las tablas es imprescindible para realizar con eficacia todas las operaciones necesarias. Las tablas son los elementos principales en una base de datos. Si no hay tablas, no tienen sentido el resto de los elementos propios de una base de datos.

¿Que son las tablas temporales?.
Son tablas que se crean en tiempo de ejecucion y solo permanecen durante la sesion de el/los usuarios.
Existen 2 tipos de tablas temporales: locales (solo visibles en la sesión actual) y globales (visibles por todas las sesiones). Las tablas temporales locales se eliminan cuando el usuario se desconecta de la instancia. Las tablas temporales globales están visibles para cualquier usuario y conexión una vez creadas, y se eliminan cuando todos los usuarios que hacen referencia a la tabla se desconectan de la instancia.
Una tabla temporal en memoria, es diferente a una tabla temporal comun en cuanto al lugar de almacenamiento. Las tablas temporales en memoria, como su nombre ya lo dice, estan almacenados en memoria, es decir no pasan por la base de datos, y por lo tanto son locales.

ClientDataSet
TClientDataset ofrece la posibilidad de tener en local los datos que ofrece una consulta o tabla (independientemente de si está con ADO, Zeos, ODBC,…); Este componente permite realizar modificaciones, inserciones y borrados de registros de los datos almacenado en memoria y cuando tú lo decides, puedes “volcar” todos esos cambios a la Base de Datos.

El componente ClientDataSet es uno de varios componentes que nos permiten trabajar con conexiones a base de datos. Pero en esta ocasion, la utilizaremos para crear una tabla temporal en memoria.

Observacion: Entre el componente de edicion de un formulario y el ClientDataSet existe un componente intermediario, el DataSource.
En la propiedad DataSet del DataSource debe estar el nombre del ClientDataSet“.

sshot-1

 

¿Como creamos una tabla temporal con ClientDataSet?
1. Insertar el objeto ClientDataSet de la pestaña Data Access.
2. Cambiar de nombre el ClientDataSet. Si va a ser una tabla temporal normalmente se utiliza asi: t_nombre.
3. En la propiedad TFieldDefs del ClientDataSet agregamos los campos que utilizaremos.
3.1. Presionar sobre “Add New” o presionar “Insert”.
3.2. Editamos las propiedades del campo ingresado. Ejemplo: DataType (ftString), name(apellido), size(3).
3.3. Una vez cargados los campos cerramos la ventana de TFieldDefs.
4. Hacemos click derecho sobre el ClientDataSet y presionamos sobre “Create DataSet”.
5. Doble click sobre ClientDataSet (se abrira una ventana con el siguiente titulo nombreformulario.nombretabla).
5.1. Dentro de la ventana presionamos Ctrl+A o seleccionamos “Add all fields” de la opcion que nos da el click derecho.
Listo, ya tenemos una tabla temporal para almacenar datos en memoria.

Crear formulario con ClientDataSet de manera rápida.
1. Doble click sobre ClientDataSet (se abrira con el titulo nombreformulario.nombretabla).
2. Seleccionamos los campos que necesitamos utilizar para arrastrar y soltar sobre el formulario.
Listo, formulario creado.
Si todavia no existia el DataSource, este se creará automaticamente. El DataSource es el objeto intermediario entre los componentes de edicion y el ClientDataSet.

Controlar la tabla temporal con el DBNavigator.
1. Colocamos el componente “DBNavigator” que se encuentra en la pestaña “Data Control” en el formulario.
2. Cambiamos la propiedad DataSource del DBNavigator. Colocamos el DataSource que esta asociado a nuestro ClientDataSet (El ClientDataSet seguramente tendra el nombre de t_nombretabla).
3. Cambiamos las propiedades el DBNavigator segun nuestro criterio.

Mostrar los datos de la tabla temporal en una grilla.
1. Colocamos el componente “DBGrid” que se encuentra en la pestaña “Data Control” en el formulario.
2. Cambiamos la propiedad DataSource del DBGrid. Colocamos el DataSource que esta asociado a nuestro ClientDataSet.
3. Cambiamos las propiedades del DBGrid segun nuestro criterio.

Codificar dentro de un boton del DBNavigator
Dentro del OnClick del DBNavigator colocamos el siguiente codigo

if Button = nbInsert then
Begin
//codigo
end;

nbInsert–> si presiono insertar
nbEdit–> si presiono editar
nbPost–> si presiono guardar
nbCancel–>si presiono cancelar
Y asi tambien los demas botones que tenemos en el DBNavigator.

Acerca del autor: Rodrigo Paszniuk

Ingeniero Informático, amante de la tecnología, la música, el ciclismo y aprender cosas nuevas.

Posts Relacionados

  • Manual básico de Delphi
  • Reportes en Delphi
  • DBLookupComboBox en Delphi
  • Busqueda de registros en Delphi



SEGUÍNOS EN FACEBOOK


GITHUB