Tanto el control de la tabla (componente) como el control de la consulta en Delphi deben tener una propiedad DataBASEname. La propiedad DataBASEname se puede utilizar para especificar la ruta de la tabla de datos referenciada por el control. Hay dos formas de establecer la ruta para la propiedad DataBASEname: el primer método es ingresar directamente la ruta donde se encuentra la tabla de datos, y el otro método es usar el alias de la base de datos (alias). En Delphi, el alias de la base de datos se establece en el motor de la base de datos (BDE), y un alias corresponde a una ruta de archivo. Puede definir alias de la siguiente manera: un alias es una asignación de rutas de archivo y es la abreviatura de las rutas de archivo. Por lo tanto, el uso de alias de base de datos en el nombre de datos de propiedades y el uso de rutas de archivo son esencialmente las mismas, los cuales sirven como ruta raíz para encontrar la tabla de datos. Sin embargo, en el diseño de la aplicación de la base de datos, si hay muchos controles de tabla y controles de consultas involucrados, entonces el uso de alias para referir rutas de archivo es muy eficiente, conveniente y no propenso a los errores. La razón es obvia: por un lado, se puede acceder a los alias directamente en la lista sin requerir la entrada del teclado como la ruta del archivo; .
Además, las declaraciones SQL de la propiedad Tablename del control de la tabla y el control de consulta pueden contener la información de ruta de la tabla de datos. Debido a que la situación de la consulta y los controles de la tabla es muy similar, la siguiente es solo la descripción de los controles de la tabla. Esta información de ruta puede ser una ruta completa o la parte posterior de una ruta completa. Por ejemplo, al asignar la propiedad Tablename de un control de tabla, puede asignarle c:/delphi/demo1/data/suscriptor, o puede asignarle datos/suscriptor. Es decir, se puede usar una ruta absoluta o se puede usar una ruta relativa.
Para facilitar la portada del programa, generalmente solo necesita especificar la ruta de la tabla de datos en la propiedad DataBASEname, y no tiene que incluir información de ruta en Tablename. En general, no especifique la ruta completa en la propiedad TableName.
La migración de aplicaciones de bases de datos es un tema importante. Porque en una aplicación de base de datos para acceder a una base de datos o tabla de datos, la ruta al archivo de datos debe estar involucrada. En términos generales, la aplicación de la base de datos debe portarse a otras máquinas para su uso después del desarrollo, por lo que la ruta del archivo de datos cuando la aplicación de la base de datos se ejecuta es probable que sea diferente del tiempo de desarrollo. Por lo tanto, la ruta del archivo de datos debe administrarse de manera efectiva para la migración del sistema. Los siguientes son tres métodos para administrar rutas de archivos de datos. 1. Cree el archivo de datos en un subdirectorio del directorio donde se encuentra la aplicación. El proceso específico es (1) para la comodidad del diseño, se puede usar un alias de base de datos durante el diseño, y el alias de la base de datos apunta a la ruta donde se encuentra la aplicación. Agregue el nombre de subpath a la propiedad Tablename del control de la tabla. (2) Antes de emitir la aplicación, configure todos los controles de tabla y el atributo de espacio de consulta activo a False y elimine todos los caracteres en la base de datos de atributos (es decir, vacío). Por defecto, el directorio actual en el que se ejecuta la aplicación es el directorio donde se encuentra la aplicación. Si el proceso como CHDIR no se llama a la aplicación para cambiar el directorio actual, no es necesario realizar el tercer paso, de lo contrario realizar el procesamiento del tercer paso.
(3) En el evento OnCreate del formulario que utiliza el control de la tabla y el control de la consulta, asigne la ruta donde la aplicación se encuentra a cada control de tabla y control de consulta en el formulario. Tabla1.databasename: = ExtractFilePath (Application.Exename); Use archivos de configuración para almacenar rutas de datos. En el futuro, la información de la ruta se lee del archivo de configuración. La lectura y la redacción de archivos de configuración se implementan utilizando métodos proporcionados por la clase Tinifile, la clase Treginifile y el Tregistro de clase. La idea básica de este método es: (1) Para la comodidad del diseño, use alias de base de datos durante el diseño. (2) Antes de emitir la aplicación, configure todos los controles de tabla y el atributo de espacio de consulta activo a False y elimine todos los caracteres en la base de datos de atributos (es decir, vacío).
(3) En el evento OnCreate del formulario que utiliza controles de tabla y controles de consulta, asigne la ruta donde la aplicación se encuentra a cada control de tabla y control de consultas en el formulario.
Tabla1.databasename: = ExtractFilePath (Application.exename);
3. Use alias de base de datos para almacenar rutas de bases de datos
Para usar la sesión para crear dinámicamente un alias de base de datos, debe agregar un componente Session1 al formulario. Lo que utilizaremos al crear y eliminar dinámicamente el alias de la base de datos es una variable global de sesión definida por la unidad, en lugar del componente Session1 agregado al formulario. Durante la creación del sistema de banco de pruebas, para evitar confusión, eliminamos el componente Session1 en el formulario, que no tiene ningún efecto en la implementación de la función.
El siguiente código muestra cómo crear un alias llamado "suscriptor", su ruta de base de datos es "E:/suscriptor" y su tipo de base de datos es paradoja.
Session.configmode: = cmall; // Especifique el modo de configuración de la sesión
Session.AddStandardalias ('net', 'e:/suscriptor', 'paradoja');
Si necesita eliminar un alias, primero debe verificar si el alias existe. El siguiente código muestra cómo verificar si existe el "suscriptor" de la base de datos, y de ser así, eliminarlo.
Definir variable: VAR STRALIAS: TStringList;
Código: Stralias: = tStringList.Create; // Generar una instancia de la clase TStringList
Session.getAliasNames (stralias); // Obtenga todos los alias de base de datos actualmente
// Encuentra si el suscriptor existe.
if (stralias.indexof ('suscriptor') <> -1) entonces
Comenzar
session.deletealias ('suscriptor'); // Eliminar el suscriptor de alias de la base de datos
session.saveconfigFile;
fin;