1. Visão geral
Como uma ferramenta de desenvolvimento rápido no Windows, o Delphi pode não apenas desenvolver aplicativos gerais do Windows, mas também possui poderosas funções de desenvolvimento de aplicativos de banco de dados. O próprio Delphi fornece suporte para diversos drivers de banco de dados, como BDE, ODBC, ADO e InterBase, que podem atender às necessidades de diferentes aplicações para desenvolvimento de programas de banco de dados.
Porém, ao publicar um programa de banco de dados desenvolvido em Delphi, além de instalar a aplicação, também é necessário publicar o driver do banco de dados ao mesmo tempo. Isso parece um pouco pesado para alguns aplicativos independentes que envolvem apenas armazenamento de dados de tabela simples, único ou múltiplo. Além disso, alguns aplicativos precisam armazenar uma grande quantidade de dados, mas se os resultados em si precisarem ser curtos e concisos, o método convencional de desenvolvimento de banco de dados usando Delphi não poderá atender às necessidades.
Então, há alguma maneira de resolver a contradição acima e desenvolver um aplicativo independente de banco de dados "fino" que possa ser separado do enorme driver de banco de dados? Delphi5 fornece um controle TClientDataSet no painel de controle do Midas, que pode resolver bem esse problema.
2. Pontos-chave para usar TClientDataSet
O controle TClientDataSet herda de TDataSet e sua extensão de formato de arquivo de armazenamento de dados é .cds. É um controle baseado no armazenamento e operação de dados do tipo de arquivo. Este controle encapsula as interfaces e funções para operação e processamento de dados e não depende dos drivers de banco de dados mencionados acima. Ele pode basicamente atender às necessidades de aplicativos de banco de dados "finos" independentes.
1. Introdução às propriedades e métodos básicos de TClientDataSet
1). FieldDefs: propriedades da lista de definição de campo
Os desenvolvedores podem editar campos clicando no botão de edição de propriedades no editor de propriedades ou clicando com o botão direito no controle e selecionando o menu "Editor de Campos" no menu pop-up. Após definir esta propriedade, na verdade equivale a definir a estrutura da tabela. Se desejar carregar a estrutura e os dados de uma tabela de dados existente, você pode clicar com o botão direito e selecionar o menu "Atribuir dados locais" no pop-up; menu acima. Na caixa de diálogo, selecione o nome do controle do conjunto de dados que está conectado ao banco de dados no formulário atual (o controle do conjunto de dados a ser aplicado deve ter sido colocado no formulário atual e ativado).
Notas sobre uso:
Para a tabela de nomes de campos customizados, após a edição da propriedade, o controle ainda não pode ser aberto. Você deve clicar com o botão direito no controle e selecionar o menu "Criar Conjunto de Dados" no menu pop-up para permitir que o controle crie um conjunto de dados com base na lista de campos editada acima antes que ele possa ser ativado, aberto e usado. Caso contrário, ocorrerá um erro semelhante a "ClientDataSet1: PRader de dados ou pacote de dados ausente (inclusive durante o tempo de execução, o tempo de execução pode chamar o método CreateDataSet do controle para definir campos e tabelas dinamicamente).
2). PropriedadeNomeArquivo
Descrição: O nome do arquivo de armazenamento de dados.
Como esse controle é um controle de operação de dados baseado em arquivo, você deve especificar o nome do arquivo de dados que está sendo operado (nome de extensão padrão .cds) para abrir e ativar o controle para edição de dados.
Exemplo 1: Use esta propriedade para abrir o arquivo .cds especificado
var
Caminho: sequência;
começar
Caminho := ExtractFilePath(application.ExeName); //Obter o caminho do arquivo executável
CDataSet1.FileName := Caminho + 'test.cds';
CDataSet1.Open;
fim;
3). Método CreateDataSet
Descrição: Este método usa a tabela de nomes de campos em FieldDefs como uma estrutura para criar um conjunto de dados, que geralmente é usado para definir tabelas dinamicamente.
Exemplo 2: Crie dinamicamente um conjunto de dados com dois campos: nome e idade.
//Cria tabela de nomes de campo
CDataSet.FieldDefs.Clear;
com CDataSet.FieldDefs.AddFieldDef faça
começar
Nome := 'Nome';
Tamanho := 10;
DataType := ftString;
fim;
com CDataSet.FieldDefs.AddFieldDef faça
começar
Nome := 'Idade';
DataType := ftInteger;
fim;
//Criar conjunto de dados dinamicamente
CDataSet.CreateDataSet;
//Ativa e abre o conjunto de dados
CDataSet.Open;
4). Método aberto
Descrição: Abre e ativa o controle de conjunto de dados para edição de dados.
a. Se o atributo FileName for especificado, o controle poderá ser aberto e ativado diretamente usando o método Open, consulte o Exemplo 1.
b. Se o atributo FileName não for especificado, você poderá usar o método do Exemplo 2 para criar e abrir dinamicamente o conjunto de dados e, em seguida, manipular os dados.
5). LoadFromFile e SaveToFile
Descrição: Carrega estruturas de tabelas e dados de arquivos e armazena dados em arquivos. Este método é semelhante às funções Abrir Novo Arquivo e Salvar Como do Word.
Exemplo 3: Armazene os dados do conjunto de dados no arquivo especificado
CDataSet.SaveToFile('c:/windows/desktop/test.cds');
6).Primeiro (até o início), Anterior (avançar), Próximo (trás), Último (até o fim), Editar (editar), Cancelar (cancelar edição), Postar (salvar), Inserir (inserir registro), Anexar (Adicionar registro), Excluir (excluir), Atualizar (atualização de dados) e outros métodos comuns de conjuntos de dados
Nota: Quando o atributo FileName é especificado, seu método Post pode armazenar dados no arquivo especificado, semelhante ao método SaveToFile se o nome do arquivo de armazenamento não for especificado, o método Post armazena apenas os dados na RAM; Outros métodos são iguais ao uso geral de controle do conjunto de dados, omitidos.
7).Filtro, Filtrado: propriedades de filtragem
Descrição: Usado para filtrar registros com condições especificadas. O uso é o mesmo dos controles gerais de conjunto de dados, que é omitido.
Exemplo 4: Filtrar registros com gênero masculino no conjunto de dados ativado e aberto
CDataSet.Close;
CDataSet.Filter := 'Sexo=''' + 'Masculino' + '''';
CDataSet.Filtered := Verdadeiro;
CDataSet.Open;
2. Notas para publicação de aplicativos usando o controle TClientDataSet:
Conforme mencionado anteriormente, os programas que utilizam o controle TClientDataSet não requerem nenhum driver de banco de dados quando lançados, o que economiza bastante o tamanho do arquivo de instalação. Porém, ao publicar o programa, não se esqueça de publicar midas.dll (257KB) no diretório do sistema Windows junto com o aplicativo (necessário para o funcionamento), caso contrário o programa ainda não funcionará normalmente.
3. Conclusão
Ao usar o controle TClientDataSet no Delphi, o aplicativo pode ser completamente separado do driver de banco de dados, e as características simples e fáceis de usar do controle de conjunto de dados convencional podem ser realizadas, fornecendo um método técnico e meios para escrever "fino" aplicações de banco de dados.
O programa acima foi testado em Pwindows98 e Delphi5.