Capítulo 5: Detrás del conjunto de datos Datos...
El estado de la primera sección de datos.
Al desarrollar aplicaciones de bases de datos con Delphi y ADO, la mayor parte del trabajo se dedica a estudiar la documentación de ayuda para el componente DataSet. . Para crear un programa basado en ADO, Delphi proporciona varios componentes de conjuntos de datos: TAdoTable, TAdoQuery y otros componentes. Se utilizan para obtener, presentar y modificar datos de tablas o consultas de bases de datos.
En el Capítulo 5 de este tutorial, veremos de forma práctica cómo presentar, explorar y leer datos introduciendo algunas de las propiedades, eventos y métodos de la mayoría de los componentes de interés del conjunto de datos.
Elija, configure, conecte y obtenga
Ahora que ha llegado al Capítulo 5, debería estar familiarizado con los pasos necesarios para crear un formulario de base de datos. En el Capítulo 4 hemos creado manualmente un formulario simple de exploración de datos. Este capítulo lo utilizará para continuar la discusión.
Hasta ahora, solo hemos utilizado un componente del conjunto de datos (ADO): TAdoTable. Es importante comprender que TADOQuery y TADODataSet (como componentes del conjunto de datos) utilizan la misma configuración para los mismos métodos y eventos.
Abre Sésamo; Cierra Sésamo (Abre Sésamo; Cierra Sésamo)
Una de las características más importantes del desarrollo de bases de datos de Delphi es que Delphi nos permite procesar datos durante el diseño del programa. Quizás recuerde: en el capítulo anterior, utilizamos la propiedad Activa para abrir una conexión activa a los datos en tiempo de diseño.
No es difícil entender que antes de comenzar a procesar los datos de la tabla, el programa primero debe abrir el conjunto de datos. Delphi tiene dos formas de lograr esta funcionalidad. La primera es que, como hemos visto, la propiedad Active se puede establecer en True en tiempo de diseño o de ejecución; la segunda es que podemos llamar al método Open en tiempo de ejecución; Por ejemplo, agregue el siguiente código al controlador de eventos OnCreate del formulario para obtener los datos del componente ADOTable.
ADOTable1.Open;
Nota: Cada conjunto de datos ADO puede acceder a los datos de la base de datos a través de su propia propiedad ConnectionString o un componente ADOConnection (y su ConnectionString). Si el componente ADOTable1 está conectado al componente ADOConnection1 (se recomienda este método), abrir ADOTable activará el componente ADOConnection correspondiente. ADOConnection proporciona dos eventos que se ejecutarán: OnWillConnect y OnConnectComplete.
El método Open establece la propiedad Active en True y activa la conexión. Cuando hayamos terminado con la conexión, podemos establecer la propiedad Activa en Falso o llamar al método Cerrar para desconectarnos. Generalmente llamamos al método Close en el controlador de eventos OnClose del formulario:
ADOTable1.Cerrar;
Antes de continuar, es fundamental saber que trabajar con métodos y propiedades de conjuntos de datos depende del conocimiento del estado actual de los datos. En pocas palabras, la propiedad Estado de un conjunto de datos determina qué acciones pueden o no ocurrir en el conjunto de datos en cualquier momento.
¿Cómo estás?
Si el conjunto de datos está cerrado, el estado de los datos mostrará una conexión inactiva. Cuando la conexión está cerrada, no se pueden realizar operaciones, comportamientos o métodos con los datos. Cuando abrimos por primera vez una conexión al conjunto de datos, el conjunto de datos está en el estado Explorar predeterminado. Siempre debes conocer el estado de "tus" datos. Por ejemplo, cuando conectamos un conjunto de datos a un DBGrid, el usuario puede ver el conjunto de datos subyacente (o conjunto de registros), pero si desea cambiar algunos datos debe configurar el Estado en Editar.
Cuando un programa procesa datos, es importante comprender que el estado del conjunto de datos cambia constantemente. Por ejemplo, al explorar datos en DBGrid (estado de exploración), el usuario comienza a editar registros y el estado cambiará automáticamente a Editar. Por supuesto, este es su comportamiento predeterminado cuando la propiedad AutoEdit de los controles de visualización de datos (DBGrid, DBEdit) está establecida en True.
¿Pero cómo obtenemos el estatus? ADOTable (ni ningún otro componente de DataSet) no tiene activadores para manejar cambios de estado.
Bueno, echemos un vistazo: para cada componente DataSet, normalmente usamos un componente DataSource para representar una conexión a uno o más controles de visualización de datos. Eso es todo.
Cada componente de fuente de datos tiene un evento OnStateChange, que se activa cada vez que cambia el estado del conjunto de datos subyacente. Coloque el siguiente código en el controlador de eventos OnStateChange para mostrar el estado actual del componente del conjunto de datos ADOTable1 usando el título del formulario:
Procedimiento TForm1.DataSource1StateChange(Remitente: TObject);
var ds: cadena ;
comenzar
caso ADOTable1.Estado de
dsInactivo: ds:='Cerrado';
dsBrowse: ds:='Navegando';
dsEdit: ds:='Edición';
dsInsert: ds:='Inserción de nuevo registro';
demás
ds:='Otros estados'
fin ;
Título:='ADOTable1 estado: ' + ds;
fin ;