Tanto o controle da tabela (componente) quanto o controle da consulta no Delphi precisam ter uma propriedade de nome do banco de dados. A propriedade DatabaseName pode ser usada para especificar o caminho da tabela de dados referenciado pelo controle. Existem duas maneiras de definir o caminho para o nome do banco de dados da propriedade: o primeiro método é entrar diretamente no caminho em que a tabela de dados está localizada e o outro método é usar o alias do banco de dados (alias). Em Delphi, o alias de banco de dados é definido no mecanismo de banco de dados (BDE) e um alias corresponde a um caminho de arquivo. Você pode definir pseudônimo da seguinte forma: Um alias é um mapeamento de caminhos de arquivo e é a abreviação de caminhos de arquivo. Portanto, o uso de alias de banco de dados no nome do banco de dados de propriedades e o uso de caminhos de arquivo são essencialmente os mesmos, os quais servem como o caminho raiz para encontrar a tabela de dados. No entanto, no design do aplicativo de banco de dados, se houver muitos controles de tabela e controles de consulta envolvidos, o uso de alias para referenciar caminhos de arquivo é muito eficiente, conveniente e não propenso a erros. O motivo é óbvio: por um lado, os aliases podem ser acessados diretamente na lista sem exigir a entrada do teclado como o caminho do arquivo; .
Além disso, as instruções SQL da propriedade TableName do controle da tabela e do controle da consulta podem conter as informações do caminho da tabela de dados. Como a situação dos controles de consulta e tabela é muito semelhante, a seguir é apenas a descrição dos controles da tabela. Esta informação do caminho pode ser um caminho completo ou a parte subsequente de um caminho completo. Por exemplo, ao atribuir a propriedade TableName de um controle de tabela, você pode atribuir C:/Delphi/Demo1/Data/Assinante a ele, ou você pode atribuir dados/assinantes a ele. Ou seja, um caminho absoluto pode ser usado ou um caminho relativo pode ser usado.
Para facilitar a porte do programa, você geralmente só precisa especificar o caminho da tabela de dados no nome do banco de dados da propriedade e não precisa incluir informações de caminho no tableName. Geralmente, não especifique o caminho completo no nome da propriedade.
A migração de aplicativos de banco de dados é uma questão importante. Como em um aplicativo de banco de dados para acessar um banco de dados ou tabela de dados, o caminho para o arquivo de dados deve estar envolvido. De um modo geral, o aplicativo de banco de dados deve ser portado para outras máquinas para uso após o desenvolvimento; portanto, o caminho do arquivo de dados quando o aplicativo de banco de dados estiver em execução provavelmente será diferente do tempo de desenvolvimento. Portanto, o caminho do arquivo de dados deve ser efetivamente gerenciado para a migração do sistema. A seguir, são apresentados três métodos para gerenciar os caminhos dos arquivos de dados. 1. Crie o arquivo de dados em um subdiretório do diretório em que o aplicativo está localizado. O processo específico é (1) para a conveniência do design, um alias de banco de dados pode ser usado durante o design, e o alias do banco de dados aponta para o caminho em que o aplicativo está localizado. Adicione o nome de subpatina à propriedade TableName do controle da tabela. (2) Antes de emitir o aplicativo, defina todos os controles de tabela e o atributo de espaço de consulta ativo ao FALSE e exclua todos os caracteres no banco de dados de atributos (ou seja, vazio). Por padrão, o diretório atual no qual o aplicativo está em execução é o diretório em que o aplicativo está localizado. Se o processo como o CHDIR não for chamado no aplicativo para alterar o diretório atual, não há necessidade de executar a terceira etapa, caso contrário, execute o processamento da terceira etapa.
(3) No evento OnCreate do formulário que usa o controle de tabela e o controle de consultas, atribua o caminho em que o aplicativo está localizado a cada controle de tabela e controle de consulta no formulário. Tabela1.databasename: = ExtractFilePath (Application.Exename); Use arquivos de configuração para armazenar caminhos de dados. No futuro, as informações do caminho são lidas no arquivo de configuração. A leitura e a escrita de arquivos de configuração são implementadas usando os métodos fornecidos pela classe Tinifile, Classe Treginifile e Tregistry de classe. A idéia básica desse método é: (1) Para a conveniência do design, use o alias do banco de dados durante o design. (2) Antes de emitir o aplicativo, defina todos os controles de tabela e o atributo de espaço de consulta ativo ao FALSE e exclua todos os caracteres no banco de dados de atributos (ou seja, vazio).
(3) No evento OnCreate do formulário que usa controles de tabela e controles de consulta, atribua o caminho em que o aplicativo está localizado a cada controle de tabela e controle de consultas no formulário.
Tabela1.databasename: = ExtractFilePath (Application.Exename);
3. Use alias de banco de dados para armazenar caminhos de banco de dados
Para usar a sessão para criar dinamicamente um alias de banco de dados, você precisa adicionar um componente Session1 ao formulário. O que usaremos ao criar e excluir dinamicamente o alias do banco de dados é uma variável global de sessão definida pela unidade, em vez do componente session1 adicionado ao formulário. Durante a criação do sistema do banco de testes, para evitar confusão, excluímos o componente session1 no formulário, o que não afeta a implementação da função.
O código a seguir mostra como criar um alias chamado "assinante", seu caminho para o banco de dados é "e:/assinante" e seu tipo de banco de dados é paradox.
Session.configmode: = cmall; // Especifique o modo de configuração da sessão
Session.addstandardalias ('net', 'e:/assinante', 'paradox');
Se você precisar excluir um alias, primeiro verifique se o alias existe. O código a seguir mostra como verificar se o alias do banco de dados "assinante" existe e, em caso afirmativo, exclua -o.
Definir variável: var stralias: tstringlist;
Código: Stralias: = tStringList.Create; // Gere uma instância da classe TStringList
Session.getaliasNames (stralias); // Obter todos os alias de banco de dados atualmente
// Encontre se o assinante existe.
if (stralia.IndexOF ('assinante') <> -1) Então
Começar
session.deleteAlias ('assinante'); // excluir o alias de banco de dados assinante
session.SaveConfigFile;
fim;