# O Manual do &kexi;

## Introdução

O &kexi; é uma aplicação de gestão de dados integrada. Poderá ser usada para criar esquemas de bases de dados, inserir dados, efectuar pesquisas e processar dados. Os formulários poderão ser criados para oferece uma interface comum aos seus dados. Todos os objectos da base de dados - tabelas, pesquisas e formulários - são gravados na base de dados, tornando simples a partilha dos dados e do desenho.

O &kexi; faz parte do pacote de produtividade do KDE &calligra;.

Para além de guardar as suas bases de dados do &kexi; em ficheiros, o &kexi; pode também guardar os seus dados num servidor de base de dados. Se usar um sevidor poderá partilhar a sua base de dados com outros utilizadores, permitindo também ter mais que uma pessoa a usar a base de dados em cada altura. São suportados os seguintes servidores de bases de dados pelo &kexi;:

- MySQL

- PostgreSQL

Poderá encontrar mais informações acerca do &kexi; na página Web do &kexi; no Calligra e na página Web do próprio Kexi.

Se tiver algumas questões acerca do &kexi;, existem duas listas de correio que poderá usar. A lista de correio dos utilizadores do &kexi; pode ser usada para fazer perguntas sobre a utilização do &kexi; ou sobre o projecto &kexi;. A lista de correio de desenvolvimento do &kexi; pode ser usado para fazer perguntas acerca do desenvolvimento do &kexi;. Poderá encontrar mais informações sobre como se inscrever nestas listas, em conjunto com mais algumas formas de estabelecer contacto com os programadores do &kexi;, no endereço descrito aqui.

Este manual para o &kexi; 2.4 pretende-se basear no Manual do &kexi; 1.1. É favor coordenar todos os esforços com o Jarosław Staniek, e-mail: kexi at kde.org

## Bases do Kexi

- Bases de Dados do Kexi

- Criar um Novo Ficheiro de Base de Dados

- A Janela Principal do Kexi

  - Elementos principais da aplicação

- Abrir um ficheiro de base de dados existente do Kexi

  - Abrir um ficheiro de bases de dados na janela para 'Abrir um Projecto Existente'

  - Abrir um ficheiro de base de dados existente ao carregara no ícone do ficheiro '.kexi'

- Usar a ajuda incorporada

### Bases de Dados do Kexi

Muitas aplicações, como o OpenOffice.org, o LibreOffice ou o &Microsoft; Excel criam ficheiros chamados documentos. O &kexi; também cria ficheiros, mas são chamados de ficheiros de bases de dados do &kexi;, ou ficheiros de bases de dados simples, aqui.

Para além de guardar as suas bases de dados em ficheiros, o &kexi; também pode usar as bases de dados em servidores, que é por isso que são referenciados como ficheiros de bases de dados, e não só como bases de dados.

O termo 'projecto do &kexi;', ou simplesmente prijecto, também é usado para se referir a uma base de dados do &kexi;, independentemente de ser guardada num ficheiro ou num servidor.

Os ficheiros de bases de dados do &kexi; normalmente têm a extensão `.kexi`

### Criar um Novo Ficheiro de Base de Dados

1. Execute o &kexi; ou, caso já esteja em execução, use a opção Kexi Novo... (Ctrl+N).

2. Na página de Novo Projecto, na secção Projectos Vazios, escolha Base de Dados Vazia.

3. Na página do Método de Armazenamento, carregue em Ficheiro.

4. No Título & Ficheiro do Projecto, defina um título e o nome do ficheiro do projecto.

5. Carregue em Seguinte para criar o projecto.

- Quando mudar o título do projecto, o nome proposto para o ficheiro irá mudar de acordo com isso.

- Poderá usar o selector de ficheiros para escolher uma pasta onde deseja guardar o seu ficheiro de base de dados.

### A Janela Principal do Kexi

A Barra de Páginas do topo dá o acesso às acções e comandos mais comuns.

O Navegador do Projecto e o Editor de Propriedades são mostrados em áreas bem definidas de cada lado da janela-filha. Estes podem ser dimensionados ou escondidos de acordo com a necessidade. Uma área poderá ser escondida se carregar na pequena cruz no cimo da área (logo por baixo da barra de ferramentas).

Os objectos da base de dados (tabelas, pesquisas, &etc;) apresentadas no Navegador do Projecto poderão ser abertas se carregar (ou fizer duplo-click, dependendo da sua configuração global do KDE) nos seus nomes.

#### Elementos principais da aplicação

Os elementos principais da janela da aplicação &kexi; são:

Barra por Páginas

- Contém os comandos disponíveis para a aplicação. Irá descobrir uma descrição detalhada de todos os comandos no apêndice.

Área de Navegação do Projecto

- Contém uma lista com todos os objectos (tabelas, pesquisas, formulários, ...) criados dentro do projecto aberto de momento. O navegador também contém uma pequena barra com os comandos mais comuns e relacionados com os objectos de bases de dados.

Área de Objectos da Base de Dados / Janelas por Páginas

- Uma área central da aplicação que ocupa a maior parte do espaço do ecrã. No modo de interface IDEAl, contém páginas seleccionáveis com janelas sempre maximizadas. Para o modo de interface de áreas-filhas, contém janelas flutuantes.

Área do Editor de Propriedades

- Contém uma lista com as propriedades do objecto da base de dados activa de momento. Para certos objectos (⪚ itens gráficos de um formulário), poderá ter várias páginas.

#### Barra por Páginas

A barra de ferramentas é o local que lhe dá acesso aos comandos e acções do &kexi; mais usados.

Se usar as acções das diferentes páginas da barra de ferramentas, poderá:

- Criar / Abrir / Fechar os projectos do Kexi

- Criar objectos da base de dados

- Importar / Exportar os dados

- Criar itens nos seus formulários

- Criar itens nos seus relatórios

#### Área do Navegador do Projecto

A área do Navegador do Projecto é um dos elementos mais usados da janela principal do &kexi;. A área contém uma lista com todos os objectos criados dentro do projecto de base de dados do Kexi aberto de momento. Os objectos estão divididos em grupos: tabelas, pesquisas, formulários, relatórios e programas.

A área do Navegador do Projecto também contém uma pequena barra de ferramentas para os comandos mais usados (da esquerda para a direita): Abrir o objecto seleccionado, Desenhar o objecto seleccionado e Apagar o objecto seleccionado.

Para cada objecto da lista, ficará disponível um menu de contexto se usar o botão direito do rato.

Se fizer duplo-click com o botão esquerdo no nome do objecto na lista, abre o objecto na Vista de Dados. Se a janela do objecto já estava aberta, a acção apenas activa a janela sem mudar o seu modo de visualização.

Ainda que o seu sistema operativo ou gestor de janelas possa ser configurado para lidar com 'clicks' simples em vez de duplos, o &kexi; usa o duplo-click no Navegador do Projecto para evitar abrir acidentalmente grandes blocos de dados ou executar pesquisas.

#### Área de objectos da base de dados aberta / Janelas por Páginas

Sempre que fizer duplo-click sobre um objecto do navegador do projecto, isto irá abrir a área de objectos da base de dados aberta. Cada janela tem a sua própria página no &kexi;.

Poderá reorganizar as páginas se as arrastar e largar ou ainda fechá-las com o botão respectivo no extremo direito da barra de páginas.

Mais tarde, existirá uma opção para destacar as páginas, criando algo semelhante a uma interface MDI. Isto poderá ser útil para criar soluções personalizadas ou vários ecrãs.

#### Área do Editor de Propriedades

Na área do Editor de Propriedades, poderá alterar as propriedades do objectos apresentado na janela activa. Dependendo do contexto, a área consiste em uma ou mais páginas. A primeira página, sempre visível, de Propriedades contém a lista de propriedades disponíveis.

Regras para usar o Editor de Propriedades:

- Cada linha corresponde a uma única propriedade.

- Poderá usar o rato ou o teclado para mudar os valores das propriedades em particular.

- Os tipos de valores de propriedades usados com maior frequência são:

  - um número; poderá introduzir o valor directamente ou ainda aumentar ou diminuir o valor se carregar com o botão esquerdo do rato nas setas.

  - texto

  - uma lista de valores

  - Sim/Não; poderá activar/desactivar o valor se carregar no botão; o Sim (verdadeiro) significa que o botão fica activo, enquanto o Não (falso) significa que estará desligado.

- Não é necessário confirmar um valor alterado: as alterações ficam visíveis imediatamente a seguir a passar para uma linha diferente da lista do Editor de Propriedades ou ao carregar na tecla &Enter;.

- Os nomes das propriedades alteradas recentemente e que ainda não tenham sido gravadas na base de dados estão marcadas a negrito.

- Depois de alterar o valor de uma propriedades, aparece um botão especial para Desfaz as alterações no lado direito da lista do Editor de Propriedades. Carregando nele, poderá reverter o valor da propriedade para o valor original que foi carregado da base de dados, ao abrir o objecto da base de dados. O botão só fica visível quando a propriedade fica realçada de facto.

A area do Editor de Propriedades fica vazia se:

- não estiver aberto qualquer objecto da base de dados ou

- a janela do objecto da base de dados activa não tiver propriedades; normalmente é o caso quando for aberta na Vista de Dados em vez da Vista de Desenho.

### Abrir um ficheiro de base de dados existente do Kexi

Existem duas formas de abrir um ficheiro de base de dados existente do &kexi;:

#### Abrir um ficheiro de base de dados na janela para 'Abrir um Ficheiro Existente'

- Execute o &kexi;. Deverá ver a janela inicial Bem-vindo ao Kexi, que lhe permite seleccionar um dos projectos usados recentemente para o abrir.

- Se o projecto não estiver página de projectos recentes, escolha a opção Abrir... (&Ctrl;O). Irá ver a seguinte janela:

- Na barra de localização actual, escolha uma pasta que contenha um ficheiro que você procure.

- Poderá tanto escolher um ficheiro a abrir imediatamente, como indicar o seu nome no campo Nome: e carregar em Seguinte.

Notas

- Por omissão, a lista Filtro: contém a opção Todos os Ficheiros Suportados (*.kexi, *.kexic, *.kexis, *.mdb) seleccionada. No caso de o ficheiro que anda à procura tiver outra extensão, pode mudar a selecção do Filtro: para Todos os Ficheiros para mostrar todos os ficheiros disponíveis (independentemente da extensão).

- Se tiver seleccionado um ficheiro de um tipo externo, como o `.mdb` do MS Access, o &kexi; oferecer-lhe-á a opção para importar o ficheiro.

- Se tiver seleccionado um ficheiro de dados da ligação (com a extensão `.kexic`) ou um atalho para um ficheiro de projecto num servidor de base de dados (com a extensão `.kexis`), o &kexi; irá mostrar as janelas apropriadas.

#### Abrir um ficheiro de base de dados existente do Kexi ao carregar no ícone do ficheiro '.kexi'

- Carregue no ícone do ficheiro com o seu gestor de ficheiros ou no ecrã. O &kexi; irá abrir este projecto de base de dados automaticamente.

Notas

Uma nota sobre os ficheiros de bases de dados acedidos de forma remota. Poderá querer abrir um ficheiro de base de dados que esteja localizado numa fonte remota (⪚ um servidor Web ou de FTP ou ainda numa partilha de rede do MS Windows). O Ambiente de Trabalho K permite-lhe abrir ficheiros em fontes remotas directamente nas aplicações e gravar as alterações de novo na origem, mas isto não é o caso com os ficheiros das bases de dados. Ao carregar num ficheiro de base de dados localizado numa fonte remota, será transferida uma cópia do ficheiro para uma pasta temporária no seu computador, sendo todas as alterações feitas nesse ficheiro local. O original remoto do ficheiro será mantido inalterado, pelo que se recomenda que transfira o ficheiro primeiro para o seu computador, depois abra o ficheiro e copie-o de novo para a fonte remota, caso o queira manter actualizado.

### Usar a ajuda incorporada

Estão disponíveis as seguintes formas de obter a ajuda incorporada no &kexi;:

O Manual, no formato de documento electrónico.

- O Manual estará disponível se carregar na tecla F1 ou se seleccionar a opção Ajuda Manual do Kexi do menu.

Dicas O Que é Isto?.

- Se seleccionar a opção Ajuda O Que é Isto? do menu e carregar numa área da aplicação, poderá obter dicas acerca dela.

## Criar Bases de Dados Simples

- Introdução

- Desenhar Tabelas da Base de Dados

  - A janela de Desenho da Tabela

- Introduzir Dados nas Tabelas

- Desenhar Pesquisas da Base de Dados

- Desenhar Formulários

  - Termos mais importantes

  - Formulários versus tabelas

  - Lidar com o desenho de formulários

  - Usar a página de Itens Gráficos

  - Inserir itens - campos de texto

  - Atribuir fontes de dados

  - Inserir legendas de texto

  - Acções

  - Disposições dos itens

- Introduzir Dados com os Formulários

### Introdução

Para aprender as bases do &kexi;, poderá criar uma base de dados simples, usando as funcionalidades mais elementares do &kexi;. Para tornar as coisas mais simples, os tópicos avançados de desenho de bases de dados não serão aqui cobertos.

Comece por criar uma nova Lista Telefónica.

Em tendo um projecto de base de dados novo e vazio, efectue os seguintes passos:

1. Desenhe as tabelas da base de dados. Leia a secção chamada Desenhar as Tabelas da Base de Dados.

2. Introduza os dados nas tabelas. Leia a secção chamada Introduzir Dados nas Tabelas.

3. Desenhe as pesquisas nas bases de dados. Leia a secção chamada Desenhar Pesquisas nas Bases de Dados.

4. Desenhe os formulários. Leia a secção chamada Desenhar Formulários.

5. Use os formulários para introduzir os dados. Leia a secção chamada Introduzir Dados com os Formulários.

### Desenhar as Tabelas de Base de Dados

Primeiro, irão existir duas tabelas adicionadas à sua base de dados: a `Pessoas` e a `Telefones`. Estas são exactamente as mesmas tabelas que estão descritas no capítulo Base de Dados e Folha de Cálculo. Poderá encontrar uma disposição para o `Pessoas` na secção de Integridade e validade dos dados nesse capítulo.

1. Seleccione a opção Tabela da barra e ferramentas ou a opção Criar um objecto: tabela do menu de contexto do Navegador do Projecto.

2. A janela de Desenho da Tabela irá aparecer. Se olhar para o topo da janela de desenho, irá reparar que o &kexi; lhe propôs um nome genérico do tipo `Tabela1` para a nova tabela. O desenho da tabela ainda não está gravado, pelo que será capaz de lhe atribuir um nome mais indicado posteriormente. Para além disso, pela mesma razão, o nome da tabela ainda não está visível no Navegador do Projecto.

#### A Janela do Desenhador de Tabelas

##### A janela do Desenhador de Tabelas consiste nas seguintes colunas:

- Ícone informativo - Informações adicionais acerca do campo

- Nome do Campo - o nome do campo (por outras palavras: o nome da coluna) que será visível durante a introdução de dados.

- Tipo de Dados - uma lista com os tipos de dados que permite atribuir uma regra principal para os dados introduzidos num determinado campo. Por exemplo, quando um campo for do tipo de números inteiros, o utilizador da base de dados não poderá introduzir letras neste campo.

- Comentários - poderá introduzir aqui quaisquer informações úteis para compreender para que serve o campo indicado. Este texto adicional poderá ser gravado dentro do desenho das tabelas e só ficará visível quando for desenhado.

Na janela de desenho da tabela, cada linha corresponde a um único campo da tabela. Poderá reconhecer que estará no modo de desenho, porque o botão Desenho estará activado dentro da barra da janela de desenho de tabelas.

##### Desenhar a tabela de Pessoas

Na primeira linha, carregue na célula da coluna Título do Campo e indique `Nome` como título do campo.

Notas sobre os nomes e títulos dos campos

- Cada campo da tabela deverá ter um nome e um título, que não poderão estar vazios.

- O nome do campo é uma palavra usada pela base de dados, que não estará normalmente visível para os utilizadores da aplicação. O nome não poderá conter caracteres especiais (nacionais) do tipo ±, ¶, Ü, ou espaços. O nome só poderá conter letras não acentuadas, números e o sublinhado _. Use o último em vez dos espaços ou hífenes.

- Os nomes dos campos deverão começar por uma letra ou sublinhado _, nunca com um número.

- Não interessa se estará a usar letras maiúsculas ou minúsculas. Para o &kexi;, o nome da base de dados `Pessoas` é igual a `pessoas`.

- O título do campo, por outro lado, permite-lhe introduzir quaisquer letras ou caracteres especiais. Será apresentado para os utilizadores da aplicação de base de dados.

De forma semelhante, indique os seguintes campos no desenho da tabela:

- `apelido`

- `rua`

- `numero_porta`

- `cidade`

Todos os campos acima, excepto o `numero_porta`, são do tipo texto. Mude o tipo do campo `numero_porta` para um número inteiro. Para o fazer, carregue numa célula da coluna Tipo de Dados, na linha `numero_porta` e carregue no botão da lista ou carregue em F4. A lista de tipos de dados irá aparecer. Poderá também usar as teclas de cursores Cima e Baixo para seleccionar outro tipo. Seleccione o tipo Número Inteiro.

Daqui em diante, o campo `numero_porta` só aceita números.

O desenho da tabela de pessoas estará pronto. Carregue no botão Dados da barra de ferramentas para terminar o desenho e mudar para a Vista de Dados da tabela. Isto permite-lhe introduzir os dados na tabela.

Dado que o desenho ainda não estará gravado na base de dados, a janela Gravar o Objecto Como irá aparecer. Terá de indicar o nome da nova tabela.

O &kexi; oferece um nome genérico do tipo Tabela1. Para mudar o nome indique `Pessoas` no campo Título e carregue na tecla &Enter; ou no botão OK. O campo Título será usado para mostrar a tabela aos utilizadores da base de dados, ⪚ como um formulário. Ao contrário do nome, o título poderá conter quaisquer espaços, incluindo os espaços e caracteres especiais.

Lembre-se que o preenchimento do campo Título preenche automaticamente o campo Nome. Para sua conveniência, a regra de utilização de apenas letras, números e _ mantém-se. Poderá alterar o conteúdo do campo Nome se o desejar.

1. Ser-lhe-á pedido para concordar com a adição automática de uma chave primária à tabela. Carregue no botão Adicionar uma chave primária para continuar.

2. A tabela Pessoas foi criada e aberta na Vista de Dados. O seu nome aparece na área do Navegador do Projecto.

3. Crie a tabela `telefone`, de forma semelhante à da tabela das `Pessoas`.

4. Crie um campo 'pessoa' do tipo Inteiro e um 'telefone' do tipo Texto. Não use um tipo numérico, dado que os números de telefone poderão ter diferentes formatos e prefixos.

5. Carregue em Dados na barra de ferramentas e indique o título `Telefones` para a tabela. Como na sua tabela anterior, permita ao &kexi; criar automaticamente uma chave primária.

### Introduzir Dados nas Tabelas

Você acabou de desenhar as duas tabelas `Pessoas` e `Telefones`. Nenhuma delas contêm dados, para já. Poderá introduzir alguns e, neste capítulo, irá aprender como fazê-lo rápida e eficientemente.

Comece pela tabela `Pessoas`. Abra-a na Vista de Dados com a opção Abrir no menu de contexto do Navegador do Projecto ou no botão da barra de ferramentas. A célula actual é marcada com um contorno mais grosso (normalmente a preto), um cursor de células. O conteúdo da célula, se estiverem presentes ficam realçados com uma cor diferente. A linha actual, &ie; a linha onde colocou o seu cursor rectangular, está marcada do lado esquerdo com um símbolo de seta.

Poderá navegar pelas células da tabela, usando o rato ou as teclas de cursores, o Page Down, o Page Down, o Home e o End; poderá também carregar com o rato numa célula para a seleccionar.

Inicialmente, após abrir a tabela `Pessoas`, o cursor fica colocado na coluna 'id'. A coluna tem a propriedade de numeração automática definida, marcada a azul na última linha. Significa que não terá de indicar valores aqui à mão ao introduzir dados para uma linha nova, porque a célula ficará preenchida automaticamente com números sucessivos.

A introdução de novas linhas e de dados para elas no &kexi; é diferente da forma como isto é feito nas folhas de cálculo. Para introduzir os dados para uma nova linha, terá de usar as teclas de cursores ou o rato, para mover o seu cursor para a última linha, que estará marcada com um sinal de mais (+). Coloque o seu cursor na coluna do nome (a segunda) e indique o nome de uma pessoa. Indique depois também o apelido, a rua, o número da porta e a cidade. Quando terminar, passe o cursor da célula para a última linha vazia, quer com a tecla Baixo quer carregando na última linha com o rato, para adicionar uma nova linha.

#### Detalhes Sobre as Acções Disponíveis ao Introduzir Dados nas Tabelas

- A partir do momento em que começou a introduzir dados, escrevendo para tal o primeiro carácter, dá-se início à edição da linha actual. Do lado esquerdo da tabela de dados, aparece o símbolo do lápis.

- Se fizer duplo-click sobre uma célula com o botão esquerdo do rato ou carregar em &Enter; ou na tecla F2, também inicia a edição da linha actual.

- Se carregar na tecla &Esc; quando estiver a editar o conteúdo de uma célula, irá cancelar as alterações feitas sobre esta célula. Contudo, o ícone do lápis não irá desaparecer, porque poderá à mesma ir para uma célula diferente da linha editada, para modificar o seu conteúdo. Para cancelar as alterações feitas à linha inteira, carregue na tecla &Esc; de novo.

- Em vez de carregar na tecla &Esc;, poderá carregar no botão para Cancelar as Alterações no Registo.

- Carregue nas teclas &Shift;&Enter; para aceitar as alterações feitas em todas as células da linha editada de momento.

Preencha a tabela `Telefones` com dados. Na coluna das pessoas, terá de indicar um número existente na tabela das `Pessoas`.

### Desenhar Pesquisas de Bases de Dados

O objectivo principal de uma base de dados é guardar e ajudar a extrair a informação que procura. Ao contrário das bases de dados escritas em folhas de papel, a base de dados &kexi; permite-lhe definir mais critérios de pesquisa. Os resultados são devolvidos mais depressa, mesmo para conjuntos de dados elevados. Tudo isto é uma potencialidade das base de dados; contudo, para poder efectuar pesquisas efectivas na sua base de dados, terá de aprender a dizer à base de dados o que procura.

Com as pesquisas na base de dados, poderá limitar os dados que vêm de uma tabela para um conjunto predefinido de linhas e colunas, assim como juntar, de forma lógica, os dados que vêm de várias tabelas.

Para ver como funcionam as pesquisas na prática, irá criar uma pesquisa de contactos que junta os dados das duas tabelas: `Pessoas` e `Telefones` (desenhadas aqui e preenchidas com dados aqui).

1. Crie uma nova pesquisa vazia, seleccionando a opção Pesquisa... da barra de ferramentas. A janela de desenho irá aparecer. A janela aparece dividida em duas áreas: as relações da pesquisa no topo e as colunas da pesquisa em baixo.

2. Seleccione a tabela `Pessoas` na lista Tabela:, localizada no topo da janela, e carregue no botão Inserir. Irá aparecer uma representação gráfica da tabela na área de relações. Faça o mesmo para a tabela `Telefones` para a inserir também.

3. Adicione uma relação à pesquisa arrastando com o rato ('drag & drop'): carregue no campo 'id' da tabela 'pessoas', arraste-o e largue-o no campo 'pessoa' da tabela `Telefones`. Isto irá juntar ambos os campos, criando uma nova relação.

4. Faça duplo-click sobre o campo 'nome' na tabela `Pessoas` , para adicionar o campo como uma coluna da pesquisa. De forma semelhante adicione o `apelido`, `rua`, `numero_porta`, `cidade` da tabela `Pessoas` e o telefone da tabela `Telefones`.

5. O desenho da pesquisa estará agora pronto para testes. Carregue no botão Dados da barra de ferramentas, para mudar do desenho para a visualização dos dados fornecidos como resultado da pesquisa.

6. Grave o desenho da pesquisa para uso posterior, carregando no botão Gravar da barra de ferramentas. Dado que o desenho da pesquisa ainda não foi gravado, ser-lhe-á pedida a indicação de um nome. Indique o texto `Contactos` no campo do título e carregue no botão OK.

### Desenhar Formulários

- Termos mais importantes

- Formulários versus tabelas

- Lidar com o desenho de formulários

- Usar a página de Itens Gráficos

- Inserir itens - campos de texto

- Atribuir fontes de dados

- Inserir legendas de texto

- Acções

- Disposições dos itens

#### Termos mais importantes

- Os elementos mostram informações, ⪚ num campo de texto ou numa área de imagem. Cada item deste tipo poderá ser associado a um campo da fonte de dados (coluna de uma tabela ou pesquisa). Como tal, esses itens são chamados de campos, em resumo.

- Os elementos capazes de efectuar uma dada acção, ⪚ um botão que poderá fechar o formulário actual. Dentro de outras aplicações, este tipo de item é alguma vezes denominado de controlo do formulário, porque pode efectuar uma acção previamente definida para controlar o comportamento da sua aplicação de base de dados.

- Existem outros itens que permitem melhorar a aparência de um formulário, ⪚ um "item de linha" poderá separar de forma visual duas áreas do formulário.

Formulário

- Uma janela disponível para a introdução e apresentação de dados no ecrã do computador.

Fonte de dados do formulário

- Uma tabela ou pesquisa na base de dados que fornece os dados apresentados no formulário. A fonte de dados é necessária porque os formulários em si são apenas ferramentas para mostrar e introduzir dados, enquanto as tabelas e pesquisas são a fonte dos dados. Os formulários novos e vazios não têm fonte de dados atribuída, pelo que não apresentam nenhuns dados da sua base de dados, a menos que lhes atribua uma fonte de dados.

Campo do formulário

- O equivalente directo de uma coluna de uma tabela ou pesquisa. Os campos usados com maior frequência são os campos para mostrar o texto e os números. A introdução de um valor novo ou a alteração de um campo existente, faz com que esse campo provoque uma alteração na tabela ou coluna da pesquisa associada (depois de aceitar a alteração).

Desenho do formulário

- As tarefas que estará a desempenhar para definir a aparência e a funcionalidade do formulário. Para o fazer, terá de indicar a fonte de dados, inserir os campos no formulário com vários tipos e colocá-los no local apropriado.

Elemento do formulário

- Um elemento gráfico pertencente ao formulários. Os tipos de elementos gráficos principais são:

Elemento contentor

- Um item que poderá conter outros itens dentro da sua área. Por exemplo, uma moldura ou uma página são elementos contentores. A superfície do formulário é ela própria um contentor. Um botão de comando não poderá ser considerado um contentor porque não é possível introduzir um item gráfico dentro dele. Nos casos mais complexos, os itens contentores poderão ser introduzidos dentro de um contentor, de modo a possibilitar o encadeamento.

#### Formulários versus tabelas

No capítulo Introduzir os Dados nas Tabelas, aprendeu como introduzir os dados directamente nas tabelas, usando a sua área de dados. Contudo, em muitos casos, os formulários são mais adequados para introduzir os dados:

- A tabela poderá conter demasiadas colunas para as apresentar no seu ecrã. O formulário poderá mostrar alguns desses dados, usando várias linhas.

- Um formulário permite dividir a nível visual os campos de dados em grupo lógicos, aumentando assim a legibilidade. As legendas com informações adicionais poderão ser inseridas para dar mais sugestões aos utilizadores sobre como usar o formulário ou o que significam os campos de dados indicados.

- Os botões de comandos poderão ser usados, dentro dos formulários, para os comandos normalmente usados, para que os utilizadores possam usar os formulários de forma semelhante às das aplicações autónomas conhecidas por eles.

Na área de visualização dos dados, a apresentação de dados multi-linhas ou imagens é tão fácil como nos formulários.

#### Trabalhar com o desenho do formulário

Como no desenho de tabelas ou pesquisas, poderá usar a Vista de Dados e Vista de Desenho. O desenho do formulário é efectuado na Vista de Desenho. Iremos fazer referências frequentes á janela de desenho do formulário como sendo o Desenho do Formulário.

1. Para criar um novo formulário vazio, seleccione Formulário na barra de ferramentas. Opcionalmente, poderá usar o comando Criar um Objecto: Formulário do menu de contexto do Navegador do Projecto.

2. Irá aparecer uma área nova, pelo que poderá dimensionar o formulário, movendo para isso os seus contornos. O formulário estará coberto com uma grelha, para simplificar o posicionamento preciso dos elementos.

Como acontece no desenho de tabelas, o Desenhador do Formulário fornece uma área Editor de Propriedades. Para poupar algum espaço no ecrã, a área tem três páginas relacionadas com o formulário seleccionado de momento:

A página de Propriedades

- Contém uma lista das propriedades do elementos gráfico seleccionado de momento.

A área da Fonte de Dados

- Contém as propriedades relacionadas directamente com a fonte de dados do item seleccionado ou do formulário em si.

A página de Itens

- Contém uma hierarquia com todos os elementos do formulário. A lista simplifica a pesquisa dos elementos por nome e a navegação pelos mesmos.

Existe alguma informação, acerca do nome e o tipo do elemento seleccionado de momento, na primeira e segunda páginas.

Estão também disponíveis algumas barras de ferramentas adicionais:

- A barra de Elementos é usada para introduzir itens gráficos no formulário. Seleccione o Desenho do Formulário para a mostrar.

#### Usar a página de Elementos

A página de Elementos na área de Propriedades oferece uma lista com elementos do formulário e a sua hierarquia. Cada elemento é apresentado dentro da hierarquia, para além dos outros elementos ao mesmo nível (com o mesmo contentor-pai). Os elementos-filhos (dentro de contentores) são apresentados com nomes indentados.

Cada elemento apresenta o seu nome e tipo. O tipo também tem um ícone visível - o mesmo que aparece na barra de ferramentas que é usada ao desenhar o formulário.

- A mudança da selecção actual na lista provoca uma selecção apropriada no formulário designado. Isto permite uma pesquisa mais simples dos elementos pelo nome, bem como uma navegação mais simples. Por exemplo, é possível seleccionar um elemento pelo nome, mudando depois para a página de Propriedades, para mudar as propriedades do elemento.

- Se mantiver a tecla &Ctrl; carregada, enquanto estará seleccionado um item na lista de elementos, permite seleccionar vários elementos de cada vez. Se mantiver a tecla &Shift; carregada, permite seleccionar listas de elementos inteiras.

A atribuição de nomes razoáveis poderá ser útil mas não obrigatória. Lembre-se que o nome de um elemento é uma propriedade que não é visível para o utilizador do seu formulário. Os utilizadores só irão ver um texto do elemento, indicado pela propriedade Texto ou outra do género.

#### Inserir elementos - campos de texto

Vamos criar um formulário que fornece informações acerca das pessoas, &ie; um formulário ligado à tabela `Pessoas`.

Se o formulário a ser desenhado deverá apresentar os dados obtidos da base de dados, terá de colocar campos apropriados nele. Para o fazer, use os botões na barra de Elementos. Cada botão corresponde a um único tipo de item.

1. Carregue no botão Campo de Texto da barra de Elementos.

2. Carregue na superfície do formulário com o botão esquerdo do rato. Será colocado um novo campo de texto no ponto em que carregou. Antes de largar, poderá arrastar o seu rato para definir o tamanho desejado para o item.

3. Se necessário, mova o elemento inserido com 'drag & drop' para uma posição desejada. Poderá dimensionar depois o elemento, arrastando uma das pequenas opções que aparecem perto dos seus cantos. Repare que as opções só ficam visíveis quando o elemento estiver seleccionado. Se seleccionar outro elemento ou a superfície do formulário, desaparecem as opções.

4. Carregue no botão Campo de Texto de novo e carregue na superfície do formulário para inserir outro elemento. Repita esta acção até que tenha três campos de texto no seu formulário. Por questões de simplificação, iremos limitar-nos a três campos de dados.

- Existe um menu de contexto disponível no modo de desenho do formulário, activado ao carregar com o botão direito do rato sobre o elemento desejado ou na superfície do formulário. O menu oferece comandos como o Cortar, Copiar, Colar, Apagar ou outros mais complexos. Também estão disponíveis atalhos de teclado para esses comandos. Alguns dos comandos só estão disponíveis para certos tipos de elementos.

- Os comandos Cortar, Copiar e Colar permitem mover ou copiar os itens entre formulários, mesmo entre projectos de bases de dados separados.

- Se mantiver carregada a tecla &Ctrl;, enquanto carrega num elemento, poderá seleccionar vários elementos gráficos.

- Em vez de usar os comandos Copiar e Colar, para duplicar um elemento dentro do mesmo formulário, poderá manter carregada a tecla &Ctrl; enquanto move o elemento. Depois de largar o botão do rato, o item arrastado não será movido mas sim copiado para o novo local.

#### Atribuir fontes de dados

Os campos que introduziu não têm fonte de dados atribuída ainda, pelo que não serão capazes de mostrar informações da base de dados. Para atribuir uma fonte de dados, use a página Fonte de Dados da área do Editor de Propriedades.

O primeiro passo de todos é indicar a fonte de dados do formulário, &ie; o local de onde os dados apresentados serão obtidos. Como descrito acima, irá usar a tabela `Pessoas` como fonte de dados para o seu novo formulário.

1. Carregue na superfície do formulário, dado que vai alterar as suas propriedades.

2. Mude para a página da Fonte de Dados e indique o nome da tabela `Pessoas` na lista da Fonte de dados do formulário. Em alternativa, poderá seleccionar este nome a partir da lista.

Você atribuiu a fonte de dados do formulário. Agora precisa de indicar a fonte de dados do elemento.

1. Carregue no primeiro campo de texto, no topo do formulário.

2. Na página da Fonte de Dados da área de propriedades, indique o nome do campo `nome` na lista Fonte de dados do elemento. Em alternativa, poderá seleccionar este nome na lista.

3. Carregue no campo de texto seguinte e indique o apelido como fonte de dados.

4. Indique as fontes de dados para os campos de texto 'rua', 'numero_porta' e 'cidade' de forma semelhante.

Poderá agora gravar o desenho do formulário (isto não é obrigatório para testar o formulário em acção). Para gravar, carregue no botão Gravar da barra de ferramentas. Depois de gravar, ser-lhe-á pedido para indicar o nome do formulário. Escreva `Pessoas` como título e carregue no botão OK. O nome do formulário será preenchido automaticamente.

Este é o momento exacto para testar o seu formulário. Carregue no botão Dados da barra de ferramentas. A menos que tenha cometido algum erro ao introduzir as fontes de dados, deverá ver os campos do formulário preenchidos com os dados da tabela `Pessoas`.

- Se quiser remover a atribuição da fonte de dados para um elemento do formulário, poderá usar o pequeno ícone preto com uma cruz branca à direita do campo Fonte de dados do elemento.

- Use o botão para Ir para a fonte de dados seleccionada do formulário para seleccionar a tabela ou pesquisa apropriada no Navegador do Projecto, para que possa rapidamente abrir uma tabela ou pesquisa, sendo a fonte de dados do formulário.

#### Inserir legendas de texto

Para facilitar ao utilizador do formulário a identificação do significada de cada elemento dos campos, estes deverão ter adicionadas legendas de texto com títulos apropriados. Para criar legendas de texto, é usado o item Legenda.

Introduza três campos de texto no formulário, colocando-os do lado esquerdo dos campos de texto (ou do lado direito, se o seu sistema operativo usar uma escrita da direita-para-a-esquerda). Ao inserir uma nova legenda, aparece um cursor de texto no local em que poderá introduzir o título desejado. Indique consecutivamente: `Nome`, `Apelido` e `Rua`. Para além disso, no topo do formulário, indique outra legenda que mostra o nome do formulário, &ie; `Pessoas`. Alargue o texto desta legenda e aumente o tamanho da letra com o Tipo de Letra da página de Propriedades.

#### Acções

Uma acção é uma única actividade isolada na aplicação, disponível para o utilizador a executar. Também poderá ser executada automaticamente como reacção para um dado evento (⪚ depois de abrir um formulário).

Atribuir acções aos botões dos formulários

A maioria das acções poderão ser atribuídas aos botões dos formulários. A acção atribuída é executada, depois de carregar no botão.

Para atribuir uma acção:

1. Mude para a vista de Desenho do formulário, caso ainda não o tenha feito.

2. Seleccione o elemento do botão existente, carregando nele, ou coloque um novo botão no formulário. Se introduzir um novo botão, indique o seu título e carregue em &Enter;.

3. Carregue no elemento do botão, com o botão direito do rato, para mostrar o menu de contexto.

4. No menu de contexto, seleccione o comando Atribuir uma acção....

5. Irá aparecer uma janela de Atribuição de uma Acção a um Botão de Comando, apresentando uma lista de acções disponíveis. Uma das acções fica seleccionada, se o elemento já tiver uma acção atribuída. Caso contrário, a lista da Categoria de acção terá o item Sem acção seleccionado.

6. Na lista do Tipo de acção, seleccione o item Acções da aplicação. Serão apresentadas as acções ao nível da aplicação.

7. Seleccione uma das acções da lista (⪚, Apagar o Objecto Seleccionado).

Depois de mudar para a vista de dados do formulário, poderá tentar ver se a acção funciona.

- Para remover a atribuição da acção, seleccione o item Sem acção da lista Categoria da acção da janela Atribuir uma Acção a um Botão de Comando.

- As acções só funcionam na vista de dados do formulário. Nem todas as atribuições de acções são razoáveis. Por exemplo, a acção Tipo de Letra... estará disponível na vista de dados, mas só se tiver um elemento seleccionado na vista de Desenho. Se tiver feito alterações aos tipos de letra, as alterações são aplicadas ao texto desse elemento seleccionado.

#### Disposições dos elementos

Na maioria dos casos, os elementos gráficos do formulário deverão estar devidamente colocados e alinhados. O posicionamento, o alinhamento e o dimensionamento dos elementos à mão não é simples e estes parâmetros não são ajustados quando o utilizador dimensiona o formulário. De facto, a situação é ainda pior, porque não consegue assumir que um dado formulário necessitada de um dado espaço, porque os utilizadores têm diferentes tamanhos de letra e resoluções do ecrã.

Se usar uma ferramenta especial, chamada de 'disposições de elementos', poderá colocar automaticamente os elementos do formulário. A disposição do elemento é uma acção que consiste em agrupar dois ou mais elementos, de modo que fiquem bem posicionados e tenham tamanhos adequados.

A utilização de disposições neste formulário melhora o alinhamento. Para além disso, o seu espaço é melhor desenvolvido. Os campos de texto ficam mais próximos uns dos outros, mantendo-se o espaço de intervalo constante.

##### Políticas de tamanho dos elementos numa disposição

Em vez de definir um tipo de letra monoespaçado para os seus elementos, no &kexi; poderá optar entre várias políticas de tamanho dos elementos. Uma política de tamanho é uma estratégia flexível para controlar como é esticado (ou encolhido) um elemento, dependendo dos elementos vizinhos e do espaço disponível dentro do formulário.

Depois de colocar os elementos numa dada disposição, tipicamente cada elemento irá obter uma política de tamanho proporcional (Preferida). Estes elementos serão automaticamente dimensionados com as configurações preferidas, dependendo do seu tipo e tamanho da disposição inteira em si. Por exemplo, três botões colocados na disposição horizontal serão dimensionados para caber o seu texto visível.

Para cada elemento introduzido no formulário, existem definições para a política de tamanho disponíveis no Editor de Propriedades. As definições são apresentadas como um grupo de propriedades chamado Política de Tamanho.

Este grupo de propriedades contém:

Política de Tamanho Horizontal

- define o tamanho horizontal do elemento,

Política de Tamanho Vertical

- define o tamanho vertical do elemento,

Esticamento Horizontal

- definir a potência da actividade da Política de Tamanho Horizontal,

Esticamento Vertical

- definir a potência da actividade da Política de Tamanho Vertical

##### Valores das políticas de tamanho

Estão disponíveis os seguintes valores na lista para a Política Horizontal e Política Vertical, visíveis no Editor de Propriedades:

Fixo

- este valor significa que o elemento não poderá ser dimensionado automaticamente; deverá manter o tamanho constante, que foi definido na altura do desenho (altura ou largura),

Mínimo

- este valor significa que o tamanho original do elemento é definido como o mínimo permitido, sendo suficiente e não existindo a necessidade expandir o elemento, se bem que este possa ser expandido, se for necessário. Este tipo de política poderá ser usado para obrigar o elemento a ser expandido para a largura ou altura completas, especialmente se definir um valor de esticamento maior que 0.

Máximo

- este valor significa que o tamanho original do elemento é definido como o máximo permitido, podendo ser diminuído sem quebrar a usabilidade e legibilidade do elemento, se os outros elementos precisarem de mais espaço,

Preferido

- este valor significa que o tamanho original do elemento é o melhor e o pretendido; o elemento poderá ser encolhido ou expandido, todavia, mantendo-se à mesma legível,

Expansível

- este valor significa que o tamanho original do elemento é razoável, mas o elemento poderá também ser encolhido; poderá também ser expandido, para ocupar o espaço máximo que for possível,

Expansão Mínima

- este valor significa que o tamanho original do elemento é permitido; poderá ser expandido, para ocupar o espaço máximo que for possível,

Ignorado

- este valor significa que o tamanho original do elemento é ignorado; o elemento poderá ser expandido, para ocupar o máximo de espaço possível, só que os outros elementos não permitem isso, normalmente

Os diferentes tipos de elementos têm diversas políticas de tamanho predefinidas; por exemplo, os elementos dos botões têm uma política de tamanho predefinida igual a Mínimo (em todas as direcções), enquanto os elementos de texto tem a política de tamanho vertical igual a Fixo.

As políticas de tamanho usadas com maior frequência são o Preferido, o Mínimo e o Máximo.

##### Esticamento horizontal e vertical

As propriedades Esticamento Vert. e Esticamento Horiz. aceitam números inteiros maiores ou iguais a 0. Estas propriedades permitem afinar o comportamento das políticas de tamanho. O valor predefinido das propriedades é 0 (zero). Um valor maior significa que o elemento será mais expandido que os outros elementos que tiverem um valor de esticamento menor.

### Introduzir Dados com os Formulários

A introdução e edição de dados é, normalmente, uma tarefa do utilizador da aplicação de base de dados, não do programador. Na prática, deseja-se verificar o formulário, em termos de introdução válida de dados, assim como ver se o formulário funciona como se pretende.

Para testar o seu formulário, mude para a sua vista de dados. Uma única linha da base de dados (registo) será apresentada e será colocado um cursor de texto dentro do primeiro campo de dados. Poderá circular entre os campos com o botão esquerdo do rato ou com as teclas e &Shift; . Enquanto edita, existirá um ícone com um lápis perto do navegador de registos. Depois de introduzir os dados da linha (registo), poderá carregar nas teclas &Shift;&Enter; ou carregue no botão OK para aceitar as alterações feitas à linha actual. Se carregar no botão Cancelar, irá eliminar as alterações feitas à linha actual, repondo o conteúdo dos campos de dados. Poderá usar o botão de navegação dos registo para ir para uma linha nova. Todas as funções do navegador estão também disponíveis de forma semelhante à vista da tabela de dados.

## Configurar o Kexi

- Acoplar e desacoplar os painéis laterais

### Acoplar e desacoplar painéis laterais

Os painéis laterais do Navegador do Projecto e do Editor de Propriedades podem ser desacoplados se:

- Faça duplo-click na barra da 'pega' no topo do painel ou

- Carregue uma vez no botão em diamente no topo do painel, a seguir ao 'x'.

Uma vez desacopladas, as janelas do painel podem ser acopladas na janela principal de novo, de forma semelhante à com que elas foram desacopladas:

- Faça duplo-click sobre a barra da 'pega' no topo da janela; ou

- Carregue uma vez no botão em diamente no topo do painel, a seguir ao 'x'.

Ao desbloquear um painel, o &kexi; recorda a última posição acoplada, para que volte a acoplá-la no local onde se encontrava da última vez.

## Referência de Comandos

- A Página do Kexi

- A Página Criar

- A Página Dados

- A Página Dados Externos

- A Página Ferramentas

- A Página de Desenho do Formulário

- A Página de Desenho do Relatório

### A Página do Kexi

A página do &kexi; é o local onde você interage com os projectos do &kexi;.

Se seleccionar uma acção, irá abrir um ecrã a seguir ao menu, oferecendo opções acerca da acção que escolheu.

As opções oferecidas são:

Bem-vindo

- Aqui poderá optar por abrir um projecto onde trabalhou recentemente.

Abrir

- Aqui poderá optar por abrir um projecto do &kexi;, quer esteja guardado num Ficheiro ou num Servidor de Base de Dados.

Fechar

- Estã acção fecha o projecto do &kexi; que tem aberto de momento.

Novo

- Aqui poderá seguir o assistente para criar um novo projecto do &kexi;.

Importar, Exportar ou Enviar...

- Aqui poderá seguir o assistente para importar dados existentes para o projecto do &kexi; aberto de momento.

Sair

- Fecha o &kexi;.

### A Página Criar

Na página Criar, poderá criar objectos que serão adicionados ao seu projecto.

Tabela

- Se seleccionar a Tabela, irá passar para o Desenho da Tabela na Vista de Desenho para adicionar definições de campos à sua tabela.

Pesquisa

- Se seleccionar Pesquisa, irá para o Desenho de Pesquisas na Vista de Desenho, para lhe permitir desenhar uma pesquisa que irá obter resultados personalizados das suas tabelas para o seu projecto.

Formulário

- Se seleccionar o Formulário, irá para o Desenho do Formulário na Vista de Desenho para adicionar os elementos ao seu formulário.

Relatório

- Se seleccionar o Relatório, irá para o Desenho do Relatório na Vista de Desenho para adicionar os elementos ao seu relatório.

Programa

- Se seleccionar o Programa, irá para o Editor do Programa que lhe permite adicionar código personalizado para o seu projecto e / ou objectos.

### A Página Dados

Na página Dados, poderá manipular os dados nas suas tabelas ou elementos nos seus objectos (formulários, relatórios, etc.)

Cortar

- O Cortar coloca os dados/elementos na área de transferência e remove-os da sua posição actual.

Copiar

- O Copiar coloca os dados/elementos na área de transferência e sem os remover da sua posição actual.

Colar

- O Colar coloca os dados/elementos existentes na área de transferência na tabela ou objecto, respectivamente.

Colar Especial

- O Colar Especial é usado para colocar dados arbitrários na área de transferência ou numa tabela, de forma previsível, para poder ser adicionado de acordo com a definição da tabela.

Procurar

- O Procurar abre a janela de pesquisa para poder procurar por um texto específico nos dados da base de dados.

### A Página de Dados Externos

Nesta página, poderá importar os dados de outras fontes no seu projecto do &kexi;.

Importar os Dados de um Ficheiro

- O Importar os Dados de um Ficheiro mostra uma janela que lhe permite importar os dados de ficheiros CSV ou de texto simples para uma tabela nova no seu projecto.

Importar as Tabelas

- O Importar as Tabelas abre o Assistente de Importação de Tabelas, que lhe permite importar dados tanto de um ficheiro `fods`, `mdb`, `ods`, `tsv` ou de outro servidor de bases de dados para uma tabela nova no seu projecto.

Exportar os Dados para um Ficheiro

- O Exportar os Dados para um Ficheiro mostra uma janela que lhe permita exportar os dados da tabela actual para um ficheiro de texto simples ou CSV.

A tabela tem de ser aberta para poder exportar os dados dela para um ficheiro.

### A Página Ferramentas

Na página de Ferramentas, poderá manipular os seus projectos.

Importar Base de Dados

- O Importar a Base de Dados abre o Assistente de Importação de Bases de Dados que lhe permite importar dados completos de um ficheiro `mdb` ou de outro servidor de bases de dados.

Compactar a Base de Dados

- O Compactar a Base de Dados procura por pequenos erros na base de dados e reduz o tamanho da mesma.

Deverá compactar regularmente a sua base de dados para a manter em boa forma, especialmente depois de algumas operações extensas com registos (adição ou remoção em massa)

### A Página de Desenho do Formulário

Na página do Desenho do Formulário, poderá seleccionar os elementos a adicionar ao seu formulário.

Ponteiro

- O Ponteiro muda para o modo de selecção de elementos.

Se seleccionar um elemento qualquer, irá mudar para o modo de adição de elementos. Depois, poderá carregar em qualquer ponto do formulário para colocar o elemento.

Legenda

- Um elemento de Legenda mostra as informações predefinidos num formulário. Normalmente, é usado como um título a seguir a outros elementos de dados.

Área de Imagem

- Um Campo de Imagem guarda uma imagem associada a um campo numa tabela.

Caixa de Texto

- Uma Caixa de Texto é uma linha única para dados contidos na sua tabela.

Editor de Texto

- Um Editor de Texto é um campo com várias linhas para os dados contidos na sua tabela.

Botão

- Um Botão permite-lhe definir acções a executar ao carregar nele.

Lista de Selecção

- Uma Lista de Selecção mostra um conjunto de opções a escolher.

Opção

- Uma Opção comum contém dois ou três estados de dados (⪚ Ligado/Desligado)

Linha

- Uma Linha é usada como separador lógico entre diferentes partes de um formulário.

Moldura

- Uma Moldura é usada como contentor para outros elementos.

Grupo

- Um Grupo é usado para agrupar outros elementos e controlar o seu estado.

Elemento de Página

- Um Elemento de Página é usado como contentor para outros elementos e poderá ter várias páginas que contêm diferentes elementos.

Navegador Web

- Um Navegador Web é um elemento que lhe permite mostrar uma página Web dentro do formulário.

Atribuir uma Acção

- A opção Atribuir uma Acção é usada para atribuir uma acção a executar quando ocorre um evento (⪚ ao carregar num botão).

### A Página de Desenho do Relatório

Na página de Desenho do Relatório, poderá seleccionar os elementos a adicionar ao seu relatório.

Legenda

- Um elemento de Legenda mostra as informações predefinidas num relatório. Normalmente é usada como um título a seguir a outros elementos de dados.

Campo

- Um elemento de Campo é uma linha única para dados que existam na sua tabela.

Texto

- Um elemento de Texto é um contentor em várias linhas para os dados contidos na sua tabela.

Imagem

- Um elemento de Imagem contém uma imagem, associada a um campo numa tabela.

Opção de Marcação

- Um item de Opção de Marcação contém dois ou três estados de dados (⪚ Ligado/Desligado)

Linha

- Uma Linha é usada como separador lógico entre diferentes partes de um formulário.

Gráfico

- Um elemento Gráfico é usado para adicionar uma representação visual dos seus dados apresentados num gráfico.

Web

- Um elemento Web é usado para fornecer um componente mínimo de navegação Web e imprimir informações de uma página Web local ou remota num relatório.

Código de Barras

- Um elemento de Código de Barras é usado para criar um código de barras a imprimir num relatório com dados guardados num campo.

## Apêndice A. Introdução às Bases de Dados

- O que é uma Base de Dados?

- Base de Dados e Folha de Cálculo

- Desenho de Bases de Dados

- Quem Precisa de uma Base de Dados?

- Aplicações de Criações de Bases de Dados

### O Que é uma Base de Dados?

Poderá definir uma base de dados com uma colecção de dados sobre um tópico. Está organizada de forma a permitir escolher facilmente a informação, fazer alterações ou adicionar itens novos.

Veja este diagrama para um dos exemplos acima: uma agenda simples.

A imagem acima mostra um conjunto de dois contactos, sendo cada um deles apresentado num cartão em separado. Parece que cada um dos cartões poderá constituir uma linha única numa tabela:

### Tabela de contactos

Nome | Núm. Tel.
Zé | 699 23 43 12
Pedro | 711 19 77 21

Termos e definições: Dados simples que constituem uma parte de uma colecção maior poderão ser chamadas de linhas ou, mais profissionalmente, de registo. A colecção é normalmente chamada de tabela. Para além disso, o nome mais natural para a tabela é um que descreva os dados que oferece/guarda, que é Contactos. Depois, cada linha da tabela consiste em colunas, normalmente chamadas de campos. Na tabela `Contactos`, existem duas colunas (campos): Nome e No. Tel.

Para utilizações simples, uma única tabela poderá compor uma base de dados. Muitas pessoas consideram estes dois conceitos equivalentes. Como poderá ver, as bases de dados reais irão necessitar de mais que uma tabela.

Em resumo, já tem uma base de dados simples com uma tabela chamada `Contactos`.

Verifique o conteúdo em

### Base de Dados e Folha de Cálculo

É bastante provável que já tenha usado aplicações de folhas de cálculo, como o Calligra Tables, o LibreOffice Calc ou o &Microsoft; Excel. Se assim for, provavelmente poderá perguntar: dado que tanto as folhas de cálculo como as bases de dados têm tabelas, porque é que deverei usar as últimas?

Ao comparar folhas de cálculo e bases de dados, poderá encontrar as seguintes questões que irá ver mais tarde com maior detalhe.

#### No que Difere uma Base de Dados de uma Folha de Cálculo?

Excedendo gradualmente a capacidade de um telemóvel, expanda a sua tabela `Contactos`, adicionando um campo 'Endereço'. Adicione mais números de telefone (emprego, casa) para cada pessoa e adicione os apelidos aos nomes. Para simplificar, assumimos o seguinte:

- A tabela estará limitada a duas pessoas (obviamente, poderão existir centenas e milhares numa base de dados real)

- Não existem duas pessoas com o mesmo nome e apelido

#### Tabela de contactos

Nome e apelido | Tel | Endereço
José Pires | 699 23 43 12 | Rua do Zé 1, Lisboa
Pedro Morais | 711 19 77 21 | Rua do Pedro 2, Porto
José Pires | 110 98 98 00 | Rua do Zé 1
Pires José | 312 43 42 22 | Lisboa, Rua do Zé 1
PEDRO Morais | 231 83 02 04 | Rua do Pedro 2, Porto

Uma tabela como esta tanto pode ser feita numa folha de cálculo como numa base de dados. Usar uma folha de cálculo é muito simples, claro. Quais são os problemas que encontra nesta altura?

#### Integridade referencial dos dados

Suponha que está a usar uma folha de cálculo e que precisa de alterar o endereço de pelo menos uma pessoa. Terá um pequeno problema: terá de alterar frequentemente o endereço em várias linhas. Por exemplo, a Joana ocupa três linhas. Será um problema real se se esquecer de alterar uma das linhas - o endereço atribuído a essa pessoa será ambíguo, pelo que os seus dados irão perder integridade.

Para além disso, não existe uma forma simples de remover uma pessoa escolhida da tabela, dado que terá de se lembrar de apagar todas as linhas relacionadas com ela.

#### Redundância dos dados

Isto estará ligado directamente ao problema anterior. Nos campos Nome, Apelido e Endereço, são gravados muitas vezes os mesmos dados. Isto é típico da forma ineficiente como uma folha de cálculo guarda os dados, porque a base de dados cresce desnecessariamente, necessitando cada vez mais de recursos do computador (maior quantidade de dados e acesso mais lento).

Como poderá resolver estes problemas com uma base de dados? Poderá dividir a informação em blocos menores, criando uma tabela adicional `Pessoas` apenas com duas colunas: 'Nome e apelido' e 'Endereço'.:

#### Tabela de pessoas

Nome e apelido | Endereço
José Pires | Rua do Zé 1, Lisboa
Pedro Morais | Rua do Pedro 2, Porto

Cada linha da tabela `Pessoas` corresponde a uma única pessoa. A tabela `Contactos` tem a partir de agora uma relação com a tabela `Pessoas`.

#### Integridade e validade dos dados

Repare na forma como os dados são introduzidos nos campos Nome e apelido e Endereço. As pessoas que introduzem os dados poderão ser falíveis ou mesmo negligentes. Nos nossos dados de exemplo, existem sequências diferentes de introdução do mesmo nome e apelido (José Pires e Pires José; Pedro e PEDRO), entre outras formas de introdução do mesmo endereço. Obviamente, poderá pensar ainda mais outras formas.

O problema acima mostra que ⪚ ao procurar pelo número de telefone de uma pessoa cujo endereço é Avenida da República 1, Lisboa, não irá obter um resultado completo. Irá obter apenas uma linha em vez de três. Para além disso, não irá encontrar todos os números de telefone se procurar pelo valor Joana Santos no campo Nome e sobrenome, porque Santos Joana não irá corresponder a Joana Santos.

Como é que pode resolver estes problemas com uma base de dados? Poderá fazê-lo se alterar o desenho da tabela `Pessoas`, para tal fazendo o seguinte:

1. Dividir os dados no campo Nome e apelido em dois campos separados: Nome e Apelido.

2. Dividir os dados no campo Endereço em três campos separado: Rua, Número porta e Cidade.

3. Garantir a correcção dos dados: garantindo que não existem dados em branco, ⪚ deverá introduzir sempre o número da porta.

Uma tabela modificada fica parecida com algo do género:

#### Tabela de pessoas

Nome | Apelido | Rua | Número da porta | Cidade
Zé | Pires | Rua do Zé | 1 | Varsóvia
Pedro | Morais | Rua do Pedro | 5 | Londres
Condições
campo obrigatório | campo obrigatório | campo obrigatório | campo obrigatório | campo obrigatório

Graças à introdução da condição de campo obrigatório, podemos garantir que os dados introduzidos estão completos. No caso das outras tabelas, poderá obviamente omitir certos campos ao introduzir os dados.

#### Limitir a visibilidade dos dados

Uma folha de cálculo mostra todas as linhas e colunas da tabela, o que poderá ser incómodo no caso de folhas de dados muito grandes. Poderá, obviamente, filtrar e ordenar as linhas nas folhas de cálculo, contudo deverá ter bastante cuidado ao fazê-lo. Os utilizadores da folha de cálculo estão em risco de se esquecer que os dados foram filtrados, o que poderá conduzir a erros. Por exemplo, ao calcular somas, poderá pensar que tem 100 linhas de dados visíveis, quando de facto estão mais 20 escondidas.

Se quiser trabalhar sobre um pequeno sub-conjunto de dados, ⪚ para o enviar para outros editarem, poderá copiá-lo e colá-lo noutra folha de cálculo e, depois de o editar, colar os dados alterados de novo na folha de cálculo principal. Esta edição manual pode provocar a perda de dados ou alguns cálculos incorrectos.

Para limitar a visualização dos dados, as aplicações de bases de dados oferecem pesquisas, formulários e relatórios.

Uma forma bastante prática de limitar é a seguinte versão extendida da tabela de `Pessoas`, previamente descrita:

#### Tabela de pessoas

Nome | Apelido | Rua | Número da porta | Cidade | Receita
Zé | Pires | Rua do Zé | 1 | Varsóvia | 2300
Pedro | Morais | Rua do Pedro | 5 | Londres | 1900

Assumamos que a nova coluna Receitas contém dados confidenciais. Como é que poderá partilhar ⪚ detalhes dos contactos das pessoas com os seus colegas, mas sem revelar as suas receitas? É possível se partilhar apenas uma pesquisa e não a tabela completa. A pesquisa poderá seleccionar todas as colunas excepto a coluna Receita. No mundo das bases de dados, uma consulta é normalmente denominada de vista.

#### Performance e capacidade

O seu computador poderá ser muito rápido, contudo irá ver que não o ajudará com folhas de cálculo lentas e grandes. A sua eficiência baixa é, primeiro que tudo, devida à falta de índices que acelerem o processo de procura de dados (as bases de dados oferecem-nas). Para além disso, se usar coisas como a área de transferência do sistema, até a cópia de dados poderá ser problemática com o tempo.

As folhas de cálculo que contenham grandes conjuntos de dados poderá levar uma eternidade a abrir. A folha de cálculo carrega um monte de dados para a memória do computador ao abrir. A maioria dos dados carregados será provavelmente inútil/desnecessária para si, de momento. As bases de dados, ao contrário das folhas de cálculo, carregam dados do disco do computador apenas se necessário.

Na maioria dos casos, não terá de se preocupar como é que a base de dados guarda os seus dados. Isto significa que, ao contrário das folhas de cálculo, as bases de dados não se preocupam com:

- A sequência das linhas, dado que poderá ordená-las de acordo com as suas necessidades. Para além disso, poderá ver os mesmos dados em várias vistas com ordenações diferentes.

- O mesmo acontece com as colunas (campos) da tabela.

Em conjunto com a secção Limitar a visibilidade dos dados, descrita no parágrafo anterior, estas qualidades constituem a vantagem das bases de dados.

#### Introdução de dados

As últimas edições das aplicações para criar folhas de cálculo permitem-lhe desenhar formulários de introdução de dados. Esses formulários são extremamente úteis se os seus dados não puderem ser apresentados convenientemente numa tabela, ⪚, se o texto conter várias linhas ou se todas as colunas não couberem no ecrã.

Nesse caso, a forma correcta como a folha de cálculo funciona é problemática. Os campos para a introdução de dados são colocados à vontade na folha de cálculo e, na maior parte dos casos, não são seguros no que respeita à intervenção do utilizador (intencional ou acidental).

#### Relatórios

As bases de dados permitem agrupar, limitar e agregar os dados sob a forma de um relatório. As folhas de cálculo são normalmente impressas num formulário de pequenas tabelas sem um controlo completamente automático sobre as divisões das páginas e a disposição dos campos.

#### Programação

As aplicações para criar bases de dados contêm normalmente linguagens de programação completas. As bases de dados mas recentes também têm essa capacidade, contudo os cálculos servem para modificar os campos da folha de cálculo e para cópias simples dos dados, independentemente da relevância das regras de integridade mencionadas nos parágrafos anteriores.

O processamento dos dados numa folha de cálculo é normalmente feito com uma interface do utilizador gráfica, que poderá atrasar a velocidade de processamento dos dados. As bases de dados são capazes de funcionar em segundo plano, fora das interfaces gráficas.

#### Multi-usos

É difícil imaginar um multi-usos de uma folha de cálculo. Mesmo que seja tecnicamente possível, no caso das últimas aplicações, necessita de bastante disciplina, atenção e conhecimento por parte dos utilizadores, o que não pode ser garantido.

Uma forma clássica de partilhar dados gravados numa folha de cálculo com outra pessoa é enviar um ficheiro como um todo (usando normalmente o e-mail) ou fornecer uma folha de cálculo pela rede. Esta forma de trabalho é pouco eficiente para os grupos maiores de pessoas - os dados que poderiam ser necessários numa dada altura em particular, poderão estar bloqueados de momento por outra pessoa.

Por outro lado, as bases de dados foram desenhadas principalmente com acesso multi-usos e multi-utilizadores em mente. Mesmo o bloqueio mais simples, ao nível de uma linha de uma tabela em particular, é possível, o que permite uma partilha simples dos dados da tabela.

#### Segurança

A segurança de uma folha de cálculo ou de secções em particular com uma senha é meramente uma actividade simbólica. Após oferecer um ficheiro de folha de cálculo na rede do computador, todas as pessoas que sejam capazes de copiar o ficheiro, poderão tentar descobrir a senha. Normalmente, não será muito difícil, dado que a senha é guardada no mesmo ficheiro que a folha de cálculo.

As funcionalidades para bloquear a edição ou a cópia de uma folha de cálculo (ou parte dela), são normalmente fáceis de quebrar.

As bases de dados (excepto as gravadas num ficheiro em vez de um servidor) não necessitam de estar disponíveis num único ficheiro. Irá aceder a estas com a rede do computador, normalmente indicando um utilizador e uma senha. Irá ganhar acesso apenas àquelas áreas (tabelas, formulários ou mesmo colunas e linhas seleccionadas) que lhe tenham sido atribuídas, através dos direitos de acesso apropriados.

Os direitos de acesso poderão afectar a capacidade de edição dos dados ou apenas da leitura de dados. Se não estiverem quaisquer dados disponíveis para si, poderá até nem ser enviado para o seu computador, como tal não há possibilidade de fazer uma cópia dos dados de forma simples, como acontece nas folhas de cálculo.

### Desenho da Base de Dados

O desenho de bases de dados requer um planeamento cuidadoso. Lembre-se que a reorganização da tabela `Contactos`, proposta na secção de Integridade e validade dos dado, poderá gerar problemas quando a tabela for preenchida com dados. Por exemplo, a mudança do nome de um campo é uma tarefa simples, mas dividir o campo `Endereço` em campos separados corresponde a um trabalho cuidadoso e aborrecido.

Para evitar estas situações, volte a pensar no seu projecto de base de dados antes de o criar no seu computador e antes de você e outros começarem a usá-lo. Assim, investindo algum tempo inicial, irá provavelmente poupar o seu tempo na utilização do dia-a-dia.

### Quem Precisa de uma Base de Dados?

#### Mantenha-se com as folhas de cálculo se:

- As suas necessidades são limitadas e os seus dados nunca irão crescer para grandes volumes (será que consegue prever isso para agora?)

- Não for capaz de adquirir a metodologia de construção de bases de dados. Poderá, contudo, considerar requisitar essa tarefa a outra pessoa ou usar ferramentas mais simples.

- Se você usar folhas de cálculo complicadas e não tem tempo ou dinheiro para mudar para bases de dados. Pense ou pergunte a alguém se isso não o levará a um beco-sem-saída. Não conte com ferramentas mágicas que iriam transformar a sua folha de cálculo (por melhor que estejam concebidas) numa base de dados.

#### Pense em usar bases de dados se:

- A sua colecção de dados se expande todas as semanas.

- Se cria com frequência folhas de cálculo novas, as copia para dentro destas e se sente que o seu trabalho estará cada vez mais aborrecido. Nesse caso, o esforço de mudança para bases de dados vale sempre a pena.

- Poderá criar relatórios e instruções para os quais a vista da folha de cálculo não é adequada. Poderá então pensar em mudar para uma base de dados com janelas de formulários.

### 'Software' de Criação da Base de Dados

Até agora, ainda não aprendeu as características das bases de dados sem entrar em grandes pormenores sobre as aplicações específicas que os desenharam.

As primeiras bases de dados que foram criadas em conjunto com os grandes servidores nos anos 60, ⪚, o IBM System/360. Esta não era a altura dos PCs, como tal, essas bases de dados necessitavam de pessoal altamente especializado. Ainda que o 'hardware' dos computadores antigos fosse pouco fiável, fosse extremamente mais lento e tivesse menos capacidade de armazenamento, uma das funcionalidades de bases de dados ainda continua atraente: o acesso aos dados por vários utilizadores na rede.

Nos anos 70, os cientistas formaram a teoria das bases de dados relacionais (termos como: tabela, registo, coluna (campo) e relações, entre outros). Na base desta teoria, foram criadas as bases de dados IBM DB2 e Oracle, que têm vindo a ser desenvolvidas e usadas até aos dias de hoje. No fim dos anos 70, foram construídos os primeiros PC's. Os seus utilizadores poderia passar a usar (gradualmente) diversos tipos de aplicações, incluindo os de construção de bases de dados.

No que respeita às grandes bases de dados nas empresas, a situação não mudou: elas continuam a necessitar de computadores poderosos ou complexos computacionais chamados de 'clusters'. Isto vai, contudo, para além do tópico deste manual.

Na área das bases de dados acessíveis, com interfaces gráficas de utilizador para PC's, poderá escolher entre as seguintes:

- DBase - uma ferramenta de gestão de bases de dados para o DOS, bastante conhecida nos anos 80. Os ficheiros no formato DBase ainda são usados em alguns casos específicos, devido à sua simplicidade.

- FoxPro - uma aplicação semelhante ao DBase (início dos anos 90). Depois de ser adquirida pela Microsoft, foram introduzidas as interfaces gráficas e, como tal, é usada para criar bases de dados nos PC's. Este produto ainda continua a ser oferecido, ainda que pareça um pouco obsoleto.

- Microsoft Access - uma aplicação para bases de dados (dados e desenho gráfico da interface) com muitas simplificações, o que o torna adequado para principiantes; foi desenhada no fim dos anos 80, baseada na arquitectura de 16 bits. Os produtos oferecidos ainda são usados nos dias de hoje, especialmente nas empresas pequenas, onde a eficiência e os requisitos multi-utilizador não são muito importantes.

- FileMaker - uma aplicação conhecida, semelhante ao MS Access na simplicidade, que funciona nas plataformas Windows e Macintosh, e que é oferecida desde 1985.

- Kexi - uma aplicação multi-plataforma (&UNIX;/&Linux;, Windows, &MacOS; X), desenhada em 2003, desenvolvida com base nos princípios do OpenSource, parte do projecto global do Ambiente de Trabalho K, &ie; um ambiente gráfico para os sistemas &UNIX;/&Linux;. Um contribuinte importante para o desenvolvimento do Kexi foi a companhia OpenOffice Polónia.

## Apêndice B. Comparar o Kexi a outras aplicações de bases de dados

- Tipos de dados

### Tipos de dados

Ainda que as diferentes aplicações de bases de dados tendam a oferecer funcionalidades semelhantes, usam normalmente terminologias diferentes. Por razões de conveniência, este apêndice mostrar como a terminologia usada no &kexi; corresponde à usada pelas outras aplicações de bases de dados. Como tal, este capítulo poderá ser útil ao migrar as bases de dados de uma aplicação para outra.

A tabela abaixo mostrar como os tipos de dados no &kexi; correspondem aos tipos de dados das outras aplicações de bases de dados.

Alguns dos tipos de dados aqui apresentados são sub-tipos de outros. Por exemplo, o tipo Texto longo é um sub-tipo do tipo Texto. Para usar um sub-tipo no &kexi;, deverá seleccionar o tipo básico correspondente (neste caso, o Texto) no desenho da tabela e depois seleccionar o sub-tipo com a opção Sub-tipo do Editor de Propriedades.

### Comparação dos tipos de dados usados no Kexi e nas outras aplicações de bases de dados

&kexi; | MS Access | dBase/FoxPro | Paradox
Texto | Texto | Carácter | Alfanumérico
Texto comprido | Memorando | Memorando | Memorando
Data/Hora | Data, Hora | Data | DataHora
Número Inteiro | Número (Inteiro) | Numérico | Inteiro
Número Inteiro Grande | Inteiro Longo | Numérico | Inteiro Longo
Número de Vírgula Flutuante | Número de Precisão Simples/Dupla | Real | Número

## Palavras reservadas para o SQL

As seguintes listas contêm palavras que são usadas internamente pelo &kexi; ao lidar com as fontes de dados.

Ao desenhar a sua base de dados, deverá tentar ao máximo utilizar estas palavras reservadas, porque poderá acabar por ter problemas com a sua base de dados ou até mesmo corrompê-la.

Se quiser continuar a usar as palavras reservadas, envolva-as entre aspas .

### Palavras Reservadas de SQL no Kexi

Esta lista contém palavras-chave que são reservadas para usar em SQL no Kexi:

- AFTER

- ALL

- ASC

- BEFORE

- BEGIN

- BETWEEN

- BY

- CASCADE

- CASE

- CHECK

- COLLATE

- COMMIT

- CONSTRAINT

- CROSS

- DATABASE

- DEFAULT

- DELETE

- DESC

- DISTINCT

- DROP

- END

- ELSE

- EXPLAIN

- FOR

- FOREIGN

- FULL

- GROUP

- HAVING

- IGNORE

- INDEX

- INNER

- INSERT

- INTO

- KEY

- LIMIT

- MATCH

- NATURAL

- OFFSET

- ORDER

- OUTER

- PRIMARY

- REFERENCES

- REPLACE

- RESTRICT

- ROLLBACK

- ROW

- SET

- TEMPORARY

- THEN

- TRANSACTION

- UNION

- UNIQUE

- UPDATE

- USING

- VALUES

- WHEN

### Palavras Reservadas do Controlador de SQLite do Kexi

Esta lista contém as palavras-chave que são reservadas para usar no controlador de SQLite do Kexi:

- ABORT

- ATTACH

- CLUSTER

- CONFLICT

- DEFERRED

- DEFERRABLE

- DETACH

- EACH

- EXCEPT

- FAIL

- GLOB

- IMMEDIATE

- INITIALLY

- INSTEAD

- INTERSECT

- ISNULL

- NOTNULL

- OF

- PRAGMA

- RAISE

- STATEMENT

- TEMP

- TRIGGER

- VACUUM

- VIEW

### Palavras Reservadas do Controlador de MySQL do Kexi

Esta lista contém as palavras-chave que são reservadas para ser usadas pelo controlador de MySQL do Kexi:

- ACTION

- ADD

- AGAINST

- AGGREGATE

- ALTER

- ANALYZE

- ANY

- ASCII

- AUTO_INCREMENT

- AVG

- AVG_ROW_LENGTH

- BACKUP

- BDB

- BERKELEYDB

- BIGINT

- BINARY

- BINLOG

- BIT

- BLOB

- BOOL

- BOOLEANO

- BOTH

- BTREE

- BYTE

- CACHE

- CHANGE

- CHANGED

- CHAR

- CHARACTER

- CHARSET

- CHECKSUM

- CIPHER

- CLIENT

- CLOSE

- COLLATION

- COLUMN

- COLUMNS

- COMMENT

- COMMITTED

- COMPRESSED

- CONCURRENT

- CONVERT

- CUBE

- CURRENT_DATE

- CURRENT_TIME

- CURRENT_TIMESTAMP

- CURRENT_USER

- DATA

- DATABASES

- DATE

- DATETIME

- DAY

- DAY_HOUR

- DAY_MICROSECOND

- DAY_MINUTE

- DAY_SECOND

- DEALLOCATE

- DEC

- DECIMAL

- DELAYED

- DELAY_KEY_WRITE

- DESCRIBE

- DES_KEY_FILE

- DIRECTORY

- DISABLE

- DISCARD

- DISTINCTROW

- DIV

- DO

- DOUBLE

- DUAL

- DUMPFILE

- DUPLICATE

- DYNAMIC

- ENABLE

- ENCLOSED

- ENGINE

- ENGINES

- ENUM

- ERRORS

- ESCAPE

- ESCAPED

- EVENTS

- EXECUTE

- EXISTS

- EXPANSION

- EXTENDED

- FALSE

- RÁPIDO

- FIELDS

- FILE

- FIRST

- FIXED

- FLOAT

- FLOAT4

- FLOAT8

- FLUSH

- FORCE

- FULLTEXT

- FUNCTION

- GEOMETRY

- GEOMETRYCOLLECTION

- GET_FORMAT

- GLOBAL

- GRANT

- GRANTS

- HANDLER

- HASH

- HELP

- HIGH_PRIORITY

- HOSTS

- HOUR

- HOUR_MICROSECOND

- HOUR_MINUTE

- HOUR_SECOND

- IDENTIFIED

- IF

- IMPORT

- INDEXES

- INFILE

- INNOBASE

- INNODB

- INSERT_METHOD

- INT

- INT1

- INT2

- INT3

- INT4

- INT8

- INTERVAL

- IO_THREAD

- ISOLATION

- ISSUER

- KEYS

- KILL

- LAST

- LEADING

- LEAVES

- LEVEL

- LINES

- LINESTRING

- LOAD

- LOCAL

- LOCALTIME

- LOCALTIMESTAMP

- LOCK

- LOCKS

- LOGS

- LONG

- LONGBLOB

- LONGTEXT

- LOW_PRIORITY

- MASTER

- MASTER_CONNECT_RETRY

- MASTER_HOST

- MASTER_LOG_FILE

- MASTER_LOG_POS

- MASTER_PASSWORD

- MASTER_PORT

- MASTER_SERVER_ID

- MASTER_SSL

- MASTER_SSL_CA

- MASTER_SSL_CAPATH

- MASTER_SSL_CERT

- MASTER_SSL_CIPHER

- MASTER_SSL_KEY

- MASTER_USER

- MAX_CONNECTIONS_PER_HOUR

- MAX_QUERIES_PER_HOUR

- MAX_ROWS

- MAX_UPDATES_PER_HOUR

- MEDIUM

- MEDIUMBLOB

- MEDIUMINT

- MEDIUMTEXT

- MICROSECOND

- MIDDLEINT

- MINUTE

- MINUTE_MICROSECOND

- MINUTE_SECOND

- MIN_ROWS

- MOD

- MODE

- MODIFY

- MONTH

- MULTILINESTRING

- MULTIPOINT

- MULTIPOLYGON

- NAMES

- NATIONAL

- NDB

- NDBCLUSTER

- NCHAR

- NEW

- NEXT

- NO

- NONE

- NO_WRITE_TO_BINLOG

- NUMERIC

- NVARCHAR

- OLD_PASSWORD

- ONE_SHOT

- OPEN

- OPTIMIZE

- OPTION

- OPTIONALLY

- OUTFILE

- PACK_KEYS

- PARTIAL

- PASSWORD

- POINT

- POLYGON

- PRECISION

- PREPARE

- PREV

- PRIVILEGES

- PROCEDURE

- PROCESS

- PROCESSLIST

- PURGE

- QUERY

- QUICK

- RAID0

- RAID_CHUNKS

- RAID_CHUNKSIZE

- RAID_TYPE

- READ

- REAL

- REGEXP

- RELAY_LOG_FILE

- RELAY_LOG_POS

- RELAY_THREAD

- RELOAD

- RENAME

- REPAIR

- REPEATABLE

- REPLICATION

- REQUIRE

- RESET

- RESTORE

- RETURNS

- REVOKE

- RLIKE

- ROLLUP

- ROWS

- ROW_FORMAT

- RTREE

- SAVEPOINT

- SECOND

- SECOND_MICROSECOND

- SEPARATOR

- SERIAL

- SERIALIZABLE

- SESSION

- SHARE

- SHOW

- SHUTDOWN

- SIGNED

- SIMPLE

- SLAVE

- SMALLINT

- SOME

- SONAME

- SOUNDS

- SPATIAL

- SQL_BIG_RESULT

- SQL_BUFFER_RESULT

- SQL_CACHE

- SQL_CALC_FOUND_ROWS

- SQL_NO_CACHE

- SQL_SMALL_RESULT

- SQL_THREAD

- SSL

- START

- STARTING

- STATUS

- STOP

- STORAGE

- STRAIGHT_JOIN

- STRING

- STRIPED

- SUBJECT

- SUPER

- TABLES

- TABLESPACE

- TERMINATED

- TEXT

- TIME

- TIMESTAMP

- TINYBLOB

- TINYINT

- TINYTEXT

- TRAILING

- TRUE

- TRUNCATE

- TYPE

- TYPES

- UNCOMMITTED

- UNICODE

- UNLOCK

- UNSIGNED

- UNTIL

- USAGE

- USE

- USER

- USER_RESOURCES

- USE_FRM

- UTC_DATE

- UTC_TIME

- UTC_TIMESTAMP

- VALUE

- VARBINARY

- VARCHAR

- VARCHARACTER

- VARIABLES

- VARYING

- WARNINGS

- WITH

- WORK

- WRITE

- X509

- YEAR

- YEAR_MONTH

- ZEROFILL

### Palavras Reservadas do Controlador de PostgreSQL do Kexi

Esta lista contém as palavras-chave que são reservadas no uso do controlador 'pqxx' do Kexi:

- ABORT

- ABSOLUTE

- ACCESS

- ACTION

- ADD

- AGGREGATE

- ALTER

- ANALYSE

- ANALYZE

- ANY

- ARRAY

- ASSERTION

- ASSIGNMENT

- AT

- AUTHORIZATION

- BACKWARD

- BIGINT

- BINARY

- BIT

- BOOLEANO

- BOTH

- CACHE

- CALLED

- CAST

- CHAIN

- CHAR

- CHARACTER

- CHARACTERISTICS

- CHECKPOINT

- CLASS

- CLOSE

- CLUSTER

- COALESCE

- COLUMN

- COMMENT

- COMMITTED

- CONSTRAINTS

- CONVERSION

- CONVERT

- COPY

- CREATEDB

- CREATEUSER

- CURRENT_DATE

- CURRENT_TIME

- CURRENT_TIMESTAMP

- CURRENT_USER

- CURSOR

- CYCLE

- DAY

- DEALLOCATE

- DEC

- DECIMAL

- DECLARE

- DEFAULTS

- DEFERRABLE

- DEFERRED

- DEFINER

- DELIMITER

- DELIMITERS

- DO

- DOMAIN

- DOUBLE

- EACH

- ENCODING

- ENCRYPTED

- ESCAPE

- EXCEPT

- EXCLUDING

- EXCLUSIVE

- EXECUTE

- EXISTS

- EXTERNAL

- EXTRACT

- FALSE

- FETCH

- FIRST

- FLOAT

- FORCE

- FORWARD

- FREEZE

- FUNCTION

- GLOBAL

- GRANT

- HANDLER

- HOLD

- HOUR

- ILIKE

- IMMEDIATE

- IMMUTABLE

- IMPLICIT

- INCLUDING

- INCREMENT

- INHERITS

- INITIALLY

- INOUT

- INPUT

- INSENSITIVE

- INSTEAD

- INT

- INTERSECT

- INTERVAL

- INVOKER

- ISNULL

- ISOLATION

- LANCOMPILER

- LANGUAGE

- LAST

- LEADING

- LEVEL

- LISTEN

- LOAD

- LOCAL

- LOCALTIME

- LOCALTIMESTAMP

- LOCATION

- LOCK

- MAXVALUE

- MINUTE

- MINVALUE

- MODE

- MONTH

- MOVE

- NAMES

- NATIONAL

- NCHAR

- NEW

- NEXT

- NO

- NOCREATEDB

- NOCREATEUSER

- NONE

- NOTHING

- NOTIFY

- NOTNULL

- NULLIF

- NUMERIC

- OF

- OFF

- OIDS

- OLD

- ONLY

- OPERATOR

- OPTION

- OUT

- OVERLAPS

- OVERLAY

- OWNER

- PARTIAL

- PASSWORD

- PATH

- PENDANT

- PLACING

- POSITION

- PRECISION

- PREPARE

- PRESERVE

- PRIOR

- PRIVILEGES

- PROCEDURAL

- PROCEDURE

- READ

- REAL

- RECHECK

- REINDEX

- RELATIVE

- RENAME

- RESET

- RESTART

- RETURNS

- REVOKE

- ROWS

- RULE

- SCHEMA

- SCROLL

- SECOND

- SECURITY

- SEQUENCE

- SERIALIZABLE

- SESSION

- SESSION_USER

- SETOF

- SHARE

- SHOW

- SIMPLE

- SMALLINT

- SOME

- STABLE

- START

- STATEMENT

- STATISTICS

- STDIN

- STDOUT

- STORAGE

- STRICT

- SUBSTRING

- SYSID

- TEMP

- TEMPLATE

- TIME

- TIMESTAMP

- TOAST

- TRAILING

- TREAT

- TRIGGER

- TRIM

- TRUE

- TRUNCATE

- TRUSTED

- TYPE

- UNENCRYPTED

- UNKNOWN

- UNLISTEN

- UNTIL

- USAGE

- USER

- VACUUM

- VALID

- VALIDATOR

- VARCHAR

- VARYING

- VERBOSE

- VERSION

- VIEW

- VOLATILE

- WITH

- WITHOUT

- WORK

- WRITE

- YEAR

- ZONE

### Palavras Reservadas do Controlador de Oracle do Kexi

Esta lista contém as palavras-chave que são reservadas no uso do controlador de Oracle do Kexi:

- ADMIN

- AFTER

- ALLOCATE

- ANALYZE

- ARCHIVE

- ARCHIVELOG

- AUTHORIZATION

- AVG

- BACKUP

- BECOME

- BEFORE

- BEGIN

- BLOCK

- BODY

- CACHE

- CANCEL

- CASCADE

- CHANGE

- CHARACTER

- CHECKPOINT

- CLOSE

- COBOL

- COMMIT

- COMPILE

- CONSTRAINT

- CONSTRAINTS

- CONTENTS

- CONTINUE

- CONTROLFILE

- COUNT

- CURSOR

- CYCLE

- DATABASE

- DATAFILE

- DATE

- DBA

- DEC

- DECLARE

- DISABLE

- DISMOUNT

- DOUBLE

- DUMP

- EACH

- ENABLE

- END

- ESCAPE

- EVENTS

- EXCEPT

- EXCEPTIONS

- EXEC

- EXECUTE

- EXPLAIN

- EXTENT

- EXTERNALLY

- FETCH

- FLUSH

- FORCE

- FOREIGN

- FORTRAN

- FOUND

- FREELIST

- FREELISTS

- FUNCTION

- GO

- GOTO

- GROUPS

- INCLUDING

- INDICATOR

- INITRANS

- INSTANCE

- INT

- KEY

- LANGUAGE

- LAYER

- LINK

- LISTS

- LOGFILE

- MANAGE

- MANUAL

- MAX

- MAXDATAFILES

- MAXINSTANCES

- MAXLOGFILES

- MAXLOGHISTORY

- MAXLOGMEMBERS

- MAXTRANS

- MAXVALUE

- MIN

- MINEXTENTS

- MINVALUE

- MODULE

- MOUNT

- NEW

- NEXT

- NOARCHIVELOG

- NOCACHE

- NOCYCLE

- NOMAXVALUE

- NOMINVALUE

- NONE

- NOORDER

- NORESETLOGS

- NORMAL

- NOSORT

- NUMERIC

- OFF

- OLD

- ONLY

- OPEN

- OPTIMAL

- OWN

- PACKAGE

- PARALLEL

- PCTINCREASE

- PCTUSED

- PLAN

- PLI

- PRECISION

- PRIMARY

- PRIVATE

- PROCEDURE

- PROFILE

- QUOTA

- READ

- REAL

- RECOVER

- REFERENCES

- REFERENCING

- RESETLOGS

- RESTRICTED

- REUSE

- ROLE

- ROLES

- ROLLBACK

- SAVEPOINT

- SCHEMA

- SCN

- SECTION

- SEGMENT

- SEQUENCE

- SHARED

- SNAPSHOT

- SOME

- SORT

- SQL

- SQLCODE

- SQLERROR

- SQLSTATE

- STATEMENT_ID

- STATISTICS

- STOP

- STORAGE

- SUM

- SWITCH

- SYSTEM

- TABLES

- TABLESPACE

- TEMPORARY

- THREAD

- TIME

- TRACING

- TRANSACTION

- TRIGGERS

- TRUNCATE

- UNDER

- UNLIMITED

- UNTIL

- USE

- USING

- WHEN

- WORK

- WRITE

### Palavras Reservadas do Controlador de Sybase do Kexi

Esta lista contém as palavras-chave que são reservadas para o uso do controlador de Sybase do Kexi:

- ACTION

- ADD

- AGAINST

- AGGREGATE

- ALTER

- ANALYZE

- ANY

- ASCII

- AUTOINCREMENT

- AVG

- AVG_ROW_LENGTH

- BACKUP

- BDB

- BERKELEYDB

- BIGINT

- BINARY

- BINLOG

- BIT

- BLOB

- BOOL

- BOOLEANO

- BOTH

- BTREE

- BYTE

- CACHE

- CHANGE

- CHANGED

- CHAR

- CHARACTER

- CHARSET

- CHECKSUM

- CIPHER

- CLIENT

- CLOSE

- COLLATION

- COLUMN

- COLUMNS

- COMMENT

- COMMITTED

- COMPRESSED

- CONCURRENT

- CONVERT

- CUBE

- CURRENT_DATE

- CURRENT_TIME

- CURRENT_TIMESTAMP

- CURRENT_USER

- DATA

- DATABASES

- DATE

- DATETIME

- DAY

- DAY_HOUR

- DAY_MICROSECOND

- DAY_MINUTE

- DAY_SECOND

- DEALLOCATE

- DEC

- DECIMAL

- DELAYED

- DELAY_KEY_WRITE

- DESCRIBE

- DES_KEY_FILE

- DIRECTORY

- DISABLE

- DISCARD

- DISTINCTROW

- DIV

- DO

- DOUBLE

- DUAL

- DUMPFILE

- DUPLICATE

- DYNAMIC

- ENABLE

- ENCLOSED

- ENGINE

- ENGINES

- ENUM

- ERRORS

- ESCAPE

- ESCAPED

- EVENTS

- EXECUTE

- EXISTS

- EXPANSION

- EXTENDED

- FALSE

- RÁPIDO

- FIELDS

- FILE

- FIRST

- FIXED

- FLOAT

- FLOAT4

- FLOAT8

- FLUSH

- FORCE

- FULLTEXT

- FUNCTION

- GEOMETRY

- GEOMETRYCOLLECTION

- GET_FORMAT

- GLOBAL

- GRANT

- GRANTS

- HANDLER

- HASH

- HELP

- HIGH_PRIORITY

- HOSTS

- HOUR

- HOUR_MICROSECOND

- HOUR_MINUTE

- HOUR_SECOND

- IDENTIFIED

- IF

- IMPORT

- INDEXES

- INFILE

- INNOBASE

- INNODB

- INSERT_METHOD

- INT

- INT1

- INT2

- INT3

- INT4

- INT8

- INTERVAL

- IO_THREAD

- ISOLATION

- ISSUER

- KEYS

- KILL

- LAST

- LEADING

- LEAVES

- LEVEL

- LINES

- LINESTRING

- LOAD

- LOCAL

- LOCALTIME

- LOCALTIMESTAMP

- LOCK

- LOCKS

- LOGS

- LONG

- LONGBLOB

- LONGTEXT

- LOW_PRIORITY

- MASTER

- MASTER_CONNECT_RETRY

- MASTER_HOST

- MASTER_LOG_FILE

- MASTER_LOG_POS

- MASTER_PASSWORD

- MASTER_PORT

- MASTER_SERVER_ID

- MASTER_SSL

- MASTER_SSL_CA

- MASTER_SSL_CAPATH

- MASTER_SSL_CERT

- MASTER_SSL_CIPHER

- MASTER_SSL_KEY

- MASTER_USER

- MAX_CONNECTIONS_PER_HOUR

- MAX_QUERIES_PER_HOUR

- MAX_ROWS

- MAX_UPDATES_PER_HOUR

- MEDIUM

- MEDIUMBLOB

- MEDIUMINT

- MEDIUMTEXT

- MICROSECOND

- MIDDLEINT

- MINUTE

- MINUTE_MICROSECOND

- MINUTE_SECOND

- MIN_ROWS

- MOD

- MODE

- MODIFY

- MONTH

- MULTILINESTRING

- MULTIPOINT

- MULTIPOLYGON

- NAMES

- NATIONAL

- NDB

- NDBCLUSTER

- NCHAR

- NEW

- NEXT

- NO

- NONE

- NO_WRITE_TO_BINLOG

- NUMERIC

- NVARCHAR

- OLD_PASSWORD

- ONE_SHOT

- OPEN

- OPTIMIZE

- OPTION

- OPTIONALLY

- OUTFILE

- PACK_KEYS

- PARTIAL

- PASSWORD

- POINT

- POLYGON

- PRECISION

- PREPARE

- PREV

- PRIVILEGES

- PROCEDURE

- PROCESS

- PROCESSLIST

- PURGE

- QUERY

- QUICK

- RAID0

- RAID_CHUNKS

- RAID_CHUNKSIZE

- RAID_TYPE

- READ

- REAL

- REGEXP

- RELAY_LOG_FILE

- RELAY_LOG_POS

- RELAY_THREAD

- RELOAD

- RENAME

- REPAIR

- REPEATABLE

- REPLICATION

- REQUIRE

- RESET

- RESTORE

- RETURNS

- REVOKE

- RLIKE

- ROLLUP

- ROWS

- ROW_FORMAT

- RTREE

- SAVEPOINT

- SECOND

- SECOND_MICROSECOND

- SEPARATOR

- SERIAL

- SERIALIZABLE

- SESSION

- SHARE

- SHOW

- SHUTDOWN

- SIGNED

- SIMPLE

- SLAVE

- SMALLINT

- SOME

- SONAME

- SOUNDS

- SPATIAL

- SQL_BIG_RESULT

- SQL_BUFFER_RESULT

- SQL_CACHE

- SQL_CALC_FOUND_ROWS

- SQL_NO_CACHE

- SQL_SMALL_RESULT

- SQL_THREAD

- SSL

- START

- STARTING

- STATUS

- STOP

- STORAGE

- STRAIGHT_JOIN

- STRING

- STRIPED

- SUBJECT

- SUPER

- TABLES

- TABLESPACE

- TERMINATED

- TEXT

- TIME

- TIMESTAMP

- TINYBLOB

- TINYINT

- TINYTEXT

- TRAILING

- TRUE

- TRUNCATE

- TYPE

- TYPES

- UNCOMMITTED

- UNICODE

- UNLOCK

- UNSIGNED

- UNTIL

- USAGE

- USE

- USER

- USER_RESOURCES

- USE_FRM

- UTC_DATE

- UTC_TIME

- UTC_TIMESTAMP

- VALUE

- VARBINARY

- VARCHAR

- VARCHARACTER

- VARIABLES

- VARYING

- WARNINGS

- WITH

- WORK

- WRITE

- X509

- YEAR

- YEAR_MONTH

- ZEROFILL

### Palavras Reservadas do Controlador de xBase do Kexi

Esta lista contém as palavras-chave que são reservadas para o uso do controlador de xBase do Kexi:

- ABORT

- ATTACH

- CLUSTER

- CONFLICT

- DEFERRED

- DEFERRABLE

- DETACH

- EACH

- EXCEPT

- FAIL

- GLOB

- IMMEDIATE

- INITIALLY

- INSTEAD

- INTERSECT

- ISNULL

- NOTNULL

- OF

- PRAGMA

- RAISE

- STATEMENT

- TEMP

- TRIGGER

- VACUUM

- VIEW

As palavras reservadas são mantidas em separado para cada controlador, para que também possam ser usadas como referência.

## Créditos e Licença

&kexi; Copyright 2002-2011 da Equipa do Kexi

Programadores do Kexi:

- Jaroslaw Staniek (staniek kde.org)

- OpenOffice Polska, LLC (info openoffice.com.pl)

- Lucijan Busch (lucijan kde.org)

- Cedric Pasteur (cedric.pasteur free.fr)

- Adam Pigg (adam piggz.fsnet.co.uk)

- Martin Ellis (martin.ellis kdemail.net)

- Sebastian Sauer (mail dipe.org)

- Christian Nitschkowski (segfault_ii web.de)

- Peter Simonsson (psn linux.se)

- Joseph Wenninger (jowenn kde.org)

- Seth Kurzenberg (seth cql.com)

- Laurent Montel (montel kde.org)

- Till Busch (till bux.at)

Documentação de Martin A. Ellis (martin.ellis kdemail.net), Jaroslaw Staniek (staniek kde.org) com contribuições de Anne-Marie Mahfouf, Raphael Langerhorst, Michal Kubicki e Aron Stansvik.

Este programa estará licenciado segundo os termos da Licença Pública Geral Lata da GNU (LGPL).

Tradução de José Nuno Pires zepires@gmail.com

&underFDL;
&documentation.index;