Autor: Gao Sumei
Maneira simples de configurar mecanismos de dados (BDE, SQL Link)
Quando o programa de banco de dados é distribuído, o mecanismo de dados (BDE, SQL Link) precisa ser carregado e, após a instalação do programa no cliente, o mecanismo de dados precisa ser configurado, como nome de usuário (nome de usuário), senha (Senha) , etc. Se a configuração manual for necessária, a carga de trabalho será relativamente grande. Neste momento, podemos usar o InstallShield For Delphi para implementar facilmente a configuração. Ao usar o InstallShield For Delphi para criar um programa de instalação, há um arquivo de texto *.iwz no diretório onde o programa de instalação é gerado. Você só precisa adicioná-lo manualmente ao fragmento [IDAPI Alias]. Por exemplo:
[Alias IDAPI]
nome de usuário=SYSDBA
senha = chave mestra
Depois de instalar o programa, o mecanismo de dados é configurado automaticamente.
Como fazer uma faixa de botões rápida
Cada botão gráfico na barra de botões rápidos representa uma função comumente usada. Ao mesmo tempo, esses botões gráficos são maiores em tamanho do que ícones comuns. Podem ser colocados gráficos maiores e mais vívidos, e podem até conter prompts curtos, o que é muito. útil para É útil para os usuários executarem as funções usadas com mais frequência. Com base nas razões acima, cada vez mais aplicativos do Windows adotam faixas de botões rápidos para melhorar a interface do aplicativo. Ao programar em Delphi, o autor usa dois métodos diferentes para implementar uma barra de botões rápida. Este artigo combina um exemplo de criação de uma barra de botões rápida com dois grupos de seis botões e lista as etapas específicas de design desses dois métodos.
1. Método de geração de combinação
(1) Coloque um objeto Panel1 no formulário como portador do botão gráfico.
(2) Defina o atributo Caption do Panel1 como vazio, o atributo Align como alTop e ajuste sua altura para o tamanho apropriado.
(3) Coloque seis botões SpeedButton no Panel1 (SpeedButton é selecionado porque possui características flutuantes).
(4) Coloque dois objetos Bevel no Panel1 e ajuste sua posição e tamanho para separar os grupos de botões.
(5) Ajuste o tamanho e a posição do SpeedButton1 no Panel1.
(6) Selecione SpeedButton1 e defina sua propriedade Flat como True.
(7) Clique no pequeno botão de reticências correspondente ao atributo Glyph do SpeedButton1, abra a janela do PictureEditor e selecione um ícone que simboliza "consulta". Defina a propriedade ShowHint como True e a propriedade Hint como "Query".
(8) Siga as etapas (5) a (7) para definir as propriedades dos botões SpeedButton restantes.
Desta forma, uma faixa rápida de botões é concluída. Durante a execução, os botões rápidos são exibidos de forma flutuante. Quando o mouse é movido sobre eles, o contorno do botão é exibido e um pequeno prompt é exibido.
2. Pegue emprestado o método de geração ToolBar
(1) Coloque um objeto ToolBar1 no formulário.
(2) Defina as propriedades EdgeBorders.ebLeft, ebTop, ebRight e ebButtom de ToolBar1 como True; a propriedade Flat como True;
(3) Selecione ToolBar1, clique com o botão direito no menu rápido, clique em NewButton e NewSeparator respectivamente para adicionar seis botões ToolButton e duas linhas separadoras.
(4) Selecione qualquer botão ToolButton e ajuste seu tamanho para o tamanho apropriado. Todos os ToolButtons também serão ajustados ao mesmo tempo.
(5) Defina a propriedade BorderWidth de ToolBar1 como 3 para ajustar a posição do ToolButton.
(6) Coloque um objeto ImageList1 no formulário e defina os valores de suas propriedades Height e Width para acomodar imagens de tamanho maior.
(7) Clique duas vezes em ImageList1 e carregue seis imagens respectivamente através do botão "Adicionar", correspondendo aos seis ToolButtons em ToolBar1.
(8) Defina a propriedade Images de ToolBar1 como ImageList1.
(9) Defina o atributo ShowHint dos seis ToolButtons como True e defina seus respectivos pequenos atributos de prompt, Hint.
(10) Você também pode definir HotImages de ToolBar1 para especificar o conjunto de imagens quando o mouse aponta para o botão.
A barra de botões rápida implementada usando ToolBar é semelhante em aparência àquela feita pelo primeiro método.
Ambos os métodos acima podem implementar uma barra de botões rápida, mas cada um tem seus próprios méritos: o primeiro processo de design é relativamente simples, o segundo método oferece mais funções, como usar HotImages para especificar a imagem definida quando o mouse aponta para o botão; . Os leitores podem escolher um e continuar a melhorar suas funções.
Como criar uma tabela temporária
A entrada de dados é uma parte inevitável do desenvolvimento de programas de banco de dados. Na estrutura Cliente/Servidor, o cliente pode inserir um lote de dados e depois enviá-lo ao banco de dados backend do servidor. Isso requer que uma tabela de dados temporária seja estabelecida localmente (cliente) para armazenar os dados inseridos pelo usuário. ela será limpa. Tabela de dados locais. Os benefícios deste método são: melhorar a eficiência de entrada e reduzir a carga da rede.
Como a quantidade de dados inseridos pelos usuários de uma vez é geralmente pequena (não mais do que algumas centenas de registros), a tabela temporária pode ser estabelecida na memória, o que resulta em um processamento mais rápido. Existem duas maneiras de criar uma tabela temporária:
1. Use o controle de consulta para criar uma tabela temporária
Passo 1: Coloque o controle de consulta (TQuery) no formulário e configure a tabela de dados conectada.
Etapa 2: adicione a seguinte declaração:
TQuery.CachedUpdates=True;
TQuery.RequestLive=Verdadeiro.
Etapa 3: Adicionar uma subinstrução Where após a instrução SQL original É necessário que o resultado da consulta SQL esteja vazio após adicionar esta subinstrução Where.
Por exemplo:
SELECIONE Biolife."Species 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′
Desta forma, a tabela temporária é criada.
2. Use código para criar uma tabela temporária
O código da função é o seguinte:
função CreateTableInMemory(const AFieldDefs:TFieldDefs):
TDataSet;
var TempTable:TClientDataSet;
começar
TabelaTemp:=nil;
Resultado:=nulo;
se AFieldDefs〈〉nil então
começar
tentar
TempTable:=TClientDataSet.Create(aplicativo);
TempTable.FieldDefs.Assign(AFieldDefs);
TempTable.CreateDataSet;
Resultado:=(TempTable como TDataSet);
Exceto
se TempTable〈〉nil então TempTable.Free;
Resultado:=nulo;
elevação;
fim
fim
fim;
Chame-o no programa da seguinte maneira:
Procedimento TForm1.Button1Click(Remetente: TObject);
var ADataSet:TDataSet;
começar
ADataSet:=TDataSet.Create(Self);
com ADataSet.FieldDefs faça
começar
Add(′Nome′,ftString,30,False);
Add(′Valor′,ftInteger,0,False);
fim;
com DataSource1 faça
começar
DataSet:=CreateTableInMemory(ADataSet.FieldDefs);
DataSet.Open;
fim;
ADataSet.Free;
fim;
Desta forma, a tabela temporária é criada.
O método 1 é simples de usar, mas devido ao uso do controle de consulta, o banco de dados de segundo plano do servidor precisa ser consultado ao limpar os dados, portanto a velocidade é um pouco mais lenta e não é adequado para situações em que cada campo da tabela temporária é composto por campos de diversas tabelas de dados. O Método 2 tem uma ampla gama de aplicações e é rápido, mas requer a escrita de código.
Usando funções no banco de dados InterBase
Quando os programadores usam o InterBase como banco de dados backend, eles geralmente acham seu uso inconveniente porque fornece poucas funções (apenas quatro), tornando impossível escrever facilmente procedimentos armazenados complexos. O próprio InterBase não pode escrever funções, mas pode usar funções externas (chamar funções na DLL). O exemplo a seguir mostra como declarar a função SUBSTR no InterBase.
DECLARE SUBSTR DE FUNÇÃO EXTERNA
CSTRING(80), PEQUENO, PEQUENO
RETORNA CSTRING(80)
ENTRY_POINT "IB_UDF_substr" MODULE_NAME "ib_udf"
Entre eles: 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 utiliza o banco de dados IBLocal que vem com a instalação do Delphi. Os usuários também podem escrever suas próprias funções para expandir o InterBase.