1. Crie uma tabela temporária
A entrada de dados é um link inevitável no desenvolvimento de programas de banco de dados. Na estrutura do cliente/servidor, o cliente pode ter que inserir um lote de dados antes de enviá -los para o banco de dados de back -end do servidor , limpe os dados após serem enviados. Os benefícios desse método são: melhorar a eficiência de entrada e reduzir a carga de rede.
Como a quantidade de dados inseridos por um usuário de cada vez é geralmente pequena (não mais do que algumas centenas de registros), as tabelas temporárias podem ser construídas na memória, o que torna o processamento mais rápido.
Método 1: Use o Controle da Consulta (TQuery)
Etapa 1: Coloque o controle de consulta (TQUERY) no formulário e defina a tabela de dados conectada.
Etapa 2: Faça o TQUERY.
TTQUERY
Etapa 3: adicione um onde a substituição após a instrução SQL original e peça que o resultado da consulta SQL esteja vazio após adicionar isso onde a substituição.
Por exemplo:
Selecione Biolife. ″ Espécies No ″, Categoria, Common_name, Biolife. ″ Nome da espécie ″, Biolife. ″ Comprimento (cm) ″, Length_in, Notas, Gráfico
De ″ biolife.db ″ biolife
onde biolife.category = ′ A 'e biolife.category = ′ b'
Dessa maneira, a tabela temporária é estabelecida.
Método 2: Crie tabelas temporárias usando código
O código é o seguinte:
função createTableInMemory (const afieldDefs: tfielddefs): tdataset;
var
Tentável: TclientDataSet;
Começar
Tentável: = nil;
Resultado: = nil;
Se AfieldDefs $#@60; $#@62; nil então
Começar
tentar
Tentável: = tclientDataset.create (aplicação);
Temptable.fielddefs.assign (AfieldDefs);
Tentável.createTataset;
Resultado: = (tentável como tdataset);
Exceto
se tentável $#@60; $#@62; nil então
Tentável.Free;
Resultado: = nil;
elevação;
fim
fim
fim;
No programa, use -o da seguinte forma:
Procedimento TForm1.Button1Click (remetente: TOBJECT);
var
Adataset: tdataset;
Começar
Adataset: = tdataset.create (self);
com adataset.fielddefs
Começar
Add ('nome', ftstring, 30, falso);
Add (′ ue ′, ftinteger, 0, false);
fim;
com DataSource1 do
Começar
Conjunto de dados: = createTableInMemory (adataset.fielddefs);
DataSet.open;
fim;
Adataset.free;
fim;
A criação temporária da tabela está completa.
O método 1 é simples de usar, mas como o controle de consulta é usado para consultar o banco de dados de back -end do servidor ao limpar os dados, a velocidade é um pouco mais lenta e não é adequada para situações em que cada campo em uma tabela temporária é reunida por vários dados Campos de tabela. O Método 2 possui uma ampla gama de aplicativos e velocidade rápida, mas requer código de gravação. (O método de uso do TFieldDefs no código é muito simples, consulte a ajuda on -line de Delphi).
2. Configure o mecanismo de dados (BDE, link SQL)
Ao distribuir programas de banco de dados, você precisa transportar um mecanismo de dados (BDE, link SQL) e, depois que o cliente instala o programa, você também precisa configurar um mecanismo de dados, como nome de usuário, senha (senha), etc. Se configurado manualmente, a carga de trabalho é relativamente grande (dependendo do número de clientes).
[Alias IDAPI]
usaName = sysdba
Senha = MasterKey
Após a instalação do programa, o mecanismo de dados é configurado automaticamente.
3. Use funções no banco de dados interbase
Os programadores podem se sentir inconvenientes (apenas quatro) ao usar o Interbase como um banco de dados em segundo plano quando fornecem poucas funções (apenas quatro) e não podem escrever facilmente procedimentos complexos armazenados. A própria interbase não pode escrever funções, mas pode usar funções externas (chamadas funções na DLL). O exemplo a seguir mostra como declarar a função de substrato na interbase.
Declare o substrato da função externa
CString (80), SmallInt, SmallInt
Retorna CString (80)
Entry_Point ″ ib_udf_substr ″ module_name ″ ib_udf ″
Onde: Module_name é o nome da DLL e Entry_Point é o nome da função.
Pode ser usado após a declaração, por exemplo:
Selecione Substr (país)
do país
Este exemplo usa o banco de dados iblocal que vem com a instalação do Delphi. Os usuários também podem escrever funções para expandir a Interbase. Para mais conteúdo, consulte os tópicos de artigo relacionados ao banco de dados ou