1. Descripción general
Como herramienta de desarrollo rápido en Windows, Delphi no solo puede desarrollar aplicaciones generales de Windows, sino que también tiene potentes funciones de desarrollo de aplicaciones de bases de datos. El propio Delphi proporciona soporte para varios controladores de bases de datos, como BDE, ODBC, ADO e InterBase, que pueden satisfacer las necesidades de diferentes aplicaciones para el desarrollo de programas de bases de datos.
Sin embargo, al publicar un programa de base de datos desarrollado con Delphi, además de instalar la aplicación, también es necesario publicar el controlador de la base de datos al mismo tiempo. Esto parece un poco pesado para algunas aplicaciones independientes que solo implican el almacenamiento de datos de una o varias tablas simples. Además, algunas aplicaciones necesitan almacenar una gran cantidad de datos, pero si se requiere que los resultados sean breves y concisos, el método convencional de desarrollo de bases de datos que utiliza Delphi no puede satisfacer las necesidades.
Entonces, ¿hay alguna forma de resolver la contradicción anterior y desarrollar una aplicación independiente de base de datos "delgada" que pueda separarse del enorme controlador de base de datos? Delphi5 proporciona un control TClientDataSet en el panel de control de Midas, que puede resolver bien este problema.
2. Puntos clave para usar TClientDataSet
El control TClientDataSet hereda de TDataSet y su extensión de formato de archivo de almacenamiento de datos es .cds. Es un control basado en el almacenamiento y operación de datos de tipo archivo. Este control encapsula las interfaces y funciones para operar y procesar datos y no depende de los controladores de base de datos mencionados anteriormente. Básicamente, puede satisfacer las necesidades de aplicaciones de bases de datos "delgadas" independientes.
1. Introducción a las propiedades y métodos básicos de TClientDataSet
1). FieldDefs: propiedades de la lista de definiciones de campos
Los desarrolladores pueden editar campos haciendo clic en el botón de edición de propiedades en el editor de propiedades, o haciendo clic derecho en el control y seleccionando el menú "Editor de campos" en el menú emergente. Después de configurar esta propiedad, en realidad es equivalente a definir la estructura de la tabla. Si desea cargar la estructura y los datos de una tabla de datos existente, puede hacer clic derecho y seleccionar el menú "Asignar datos locales" en la ventana emergente. menú arriba. En el cuadro de diálogo, seleccione el nombre del control del conjunto de datos que está conectado a la base de datos en el formulario actual (el control del conjunto de datos que se aplicará debe haberse colocado en el formulario actual y activado).
Notas de uso:
Para la tabla de nombres de campos personalizados, después de editar la propiedad, el control aún no se puede abrir. Debe hacer clic derecho en el control y seleccionar el menú "Crear conjunto de datos" en el menú emergente para permitir que el control cree un conjunto de datos basado en la lista de campos editada anteriormente antes de que pueda activarse, abrirse y usarse. De lo contrario, se producirá un error similar a "ClientDataSet1: Falta un proveedor de datos o un paquete de datos" (incluso durante el tiempo de ejecución, el tiempo de ejecución puede llamar al método CreateDataSet del control para definir dinámicamente campos y tablas).
2). Propiedad de nombre de archivo
Descripción: El nombre del archivo de almacenamiento de datos.
Debido a que este control es un control de operación de datos basado en archivos, debe especificar el nombre del archivo de datos que se está operando (nombre de extensión predeterminado .cds) para abrir y activar el control para la edición de datos.
Ejemplo 1: utilice esta propiedad para abrir el archivo .cds especificado
var
Ruta: cadena;
comenzar
Ruta:= ExtractFilePath(application.ExeName); //Obtener la ruta del archivo ejecutable;
CDataSet1.FileName:= Ruta + 'test.cds';
CDataSet1.Open;
fin;
3). Método CreateDataSet
Descripción: este método utiliza la tabla de nombres de campo en FieldDefs como estructura para crear un conjunto de datos, que a menudo se usa para definir tablas dinámicamente.
Ejemplo 2: cree dinámicamente un conjunto de datos con dos campos: nombre y edad.
//Crear tabla de nombres de campo
CDataSet.FieldDefs.Clear;
con CDataSet.FieldDefs.AddFieldDef hacer
comenzar
Nombre := 'Nombre';
Tamaño: = 10;
Tipo de datos := ftString;
fin;
con CDataSet.FieldDefs.AddFieldDef hacer
comenzar
Nombre := 'Edad';
Tipo de datos := ftInteger;
fin;
//Crear dinámicamente un conjunto de datos
CDataSet.CreateDataSet;
//Activar y abrir el conjunto de datos
CDataSet.Open;
4). método abierto
Descripción: Abre y activa el control del conjunto de datos para la edición de datos.
a Si se especifica el atributo FileName, el control se puede abrir y activar directamente usando el método Open, consulte el Ejemplo 1.
b. Si no se especifica el atributo FileName, puede utilizar el método del Ejemplo 2 para crear y abrir dinámicamente el conjunto de datos y luego manipular los datos.
5). Cargar desde archivo y guardar en archivo
Descripción: cargue estructuras de tablas y datos de archivos y almacene datos en archivos. Este método es similar a las funciones Abrir nuevo archivo y Guardar como en Word.
Ejemplo 3: almacenar los datos del conjunto de datos en el archivo especificado
CDataSet.SaveToFile('c:/windows/desktop/test.cds');
6).Primero (hasta el principio), Anterior (avanzar), Siguiente (retroceder), Último (hasta el final), Editar (editar), Cancelar (cancelar edición), Publicar (guardar), Insertar (insertar registro), Agregar (Agregar registro), Eliminar (eliminar), Actualizar (actualizar datos) y otros métodos comunes de conjuntos de datos
Nota: Cuando se especifica el atributo FileName, su método Post puede almacenar datos en el archivo especificado, similar a su método SaveToFile, si no se especifica el nombre del archivo de almacenamiento, el método Post solo almacena los datos en la RAM; Otros métodos son los mismos que el uso de control del conjunto de datos generales, omitidos.
7).Filter, Filtered: propiedades de filtrado
Descripción: Se utiliza para filtrar registros con condiciones específicas. El uso es el mismo que el de los controles de conjuntos de datos generales, que se omite.
Ejemplo 4: Filtrar registros con género masculino en el conjunto de datos activado y abierto
CDataSet.Cerrar;
CDataSet.Filter := 'Género=''' + 'Hombre' + '''';
CDataSet.Filtered: = Verdadero;
CDataSet.Open;
2. Notas para la publicación de aplicaciones utilizando el control TClientDataSet:
Como se mencionó anteriormente, los programas que utilizan el control TClientDataSet no requieren ningún controlador de base de datos cuando se lanzan, lo que ahorra en gran medida el tamaño del archivo de instalación. Sin embargo, al publicar el programa, no olvide publicar midas.dll (257 KB) en el directorio del sistema de Windows junto con la aplicación (requerida para el funcionamiento); de lo contrario, el programa aún no se ejecutará normalmente.
3. Conclusión
Al utilizar el control TClientDataSet en Delphi, la aplicación se puede separar completamente del controlador de la base de datos y se pueden lograr las características simples y fáciles de usar del control de conjunto de datos convencional, proporcionando un método técnico y medios para escribir "delgados". aplicaciones de bases de datos.
El programa anterior ha sido probado en Pwindows98 y Delphi5.