· Incluye varios métodos para operaciones comunes con campos empleando instrucciones cortas.
· En tiempo de ejecución puede clonar el conjunto de datos asociado, usando una copia privada en lugar del componente asignado en tiempo de diseño, ayudando con ello a evitar conflictos entre módulos y permitiendo que dos elementos del programa trabajen simultáneamente con la misma tabla o consulta.
· Incluye en sí mismo los eventos estándares de un conjunto de datos (OnNewRecord, BeforePost, AfterEdit, BeforeDelete, etc.), para programar tales eventos cómodamente en el propio código de los formularios donde se coloque el componente, evitando con ello ensuciar el módulo de datos con código de interfaz de usuario.
Propiedades:
En tiempo de ejecución, cuando esta propiedad tiene un valor de True, el componente toma el conjunto de datos que tenga o sea asignado a la propiedad DataSet, y crea una copia del mismo. Todas las propiedades, eventos y campos definidos del primer conjunto de datos serán establecidos de igual manera en el objeto clon. Y éste será el nuevo conjunto de datos asignado al componente. Esto permite establecer en tiempo de diseño varias fuentes de datos apuntando al mismo conjunto de datos, pero logrando que en tiempo de ejecución cada una use un objeto distinto para evitar conflictos entre formularios o procesos. Es una excelente alternativa a la tradicional y molesta solución de establecer dos o más conjuntos de datos similares en tiempo de diseño, para satisfacer necesidades que podrían tener conflicto si emplearan el mismo componente de datos. Su valor predeterminado es False.
DataSetEvents :TghDataSetEventHolder
Esta propiedad es un contenedor de todos los eventos estándares de un conjunto de datos. Su gran utilidad surge al colocar el componente dentro de un formulario y asociarlo con un conjunto de datos que se encuentra en un módulo de datos. Expandiendo esta propiedad en el inspector de objetos puede crear nuevos manejadores de eventos para el conjunto de datos, pero la declaración e implementación de estos manejadores de eventos quedará en la misma unidad del formulario y no en el archivo.pas del módulo de datos. Las principales ventajas de esto es conseguir que todo el código relacionado con un formulario quede en el archivo.pas de éste (y no una parte fuera de él), además de evitar que el módulo de datos se vea contaminado con código de interfaz de usuario (un módulo de datos no debe conocer a la interfaz de usuario).
FieldValues [Const FieldNames :String] :Variant
Esta es la propiedad predeterminada del componente. Es sólo una envoltura de la propiedad DataSet.FieldValues, para facilitar el acceso, de una manera abreviada, a los valores de los campos del conjunto de datos asociado (por ejemplo, con la expresión DataSource1 ['Nombre']).
Métodos:
Procedure Clear (Const FieldName :String);
Function OnCloneDataSet :TMagiaDataCloneDataSetEvent (DataSet :TDataSet;
Var Cls :TDataSetClass; Var Clone :TDataSet)