Página 1 de 1

Consulta em banco de dados

Enviado: 09 Jul 2010 16:00
por carlosgustavo
Tenho algumas duvidas sobre isso:

1) O que são aqueles arquivos .ntx e pra que servem?

2) O que são indices e pra que servem?

3) Como faço a consulta em um banco de dados utilizando o codigo cadastrado?

Re: Consulta em banco de dados

Enviado: 10 Jul 2010 09:14
por Toledo
carlosgustavo escreveu:1) O que são aqueles arquivos .ntx e pra que servem?
2) O que são indices e pra que servem?
Os arquivos .NTX são índices que possuem apontadores para os registros de um arquivo .DBF, que ficam organizados de acordo com os valores das chaves de índice. Então, para ordenar os registros do arquivo .DBF através do conteúdo de um (ou vários) dos seus campos, será necessário criar um arquivo de índice (.NTX). Um arquivo DBF pode ter até 15 arquivos de índices associados a ele.
carlosgustavo escreveu:3) Como faço a consulta em um banco de dados utilizando o codigo cadastrado?
Bom, para fazer isto, você vai ter que criar um arquivo de índice (.NTX) que tenha como chave de índice o campo CODIGO do seu arquivo .DBF. Veja um exemplo:

Código: Selecionar todos

USE CLIENTES ALIAS CLIENTES NEW  //Abre o arquivo DBF
IF !FILE("CLI001.NTX")  //Verifica se o arquivo CLI001.NTX existe
  INDEX ON STRZERO(codigo,6) TO CLI001   //Se nao existe, vamos criar o arquivo
ENDIF
SET INDEX TO CLI001  //Associa o arquivo CLI001 ao DBF
vCod:=0
@ 10,10 SAY "Digite o Código:" GET vCod PIC "999999"
READ
GO TOP   //Vai para o inicio do DBF
SEEK STRZERO(vCod,6)  //Procura o registro que tenha o código digitado
IF FOUND() //Se o registro foi encontrado
  ALERT("Registro já existe!")
ELSE
 ALERT("Registro não foi encontrado!")
ENDIF
Obs.: caso você não conheça algum dos comandos usados neste exemplo, use a opção de busca do fórum, que está no topo desta página. É só digitar o comando no campo de busca e clicar no botão Busca.

Com o comando da linha 3 do exemplo acima que será criado o arquivo de índice, neste exemplo será criado o arquivo CLI001.NTX.
Sintaxe

INDEX ON <expChave> TO <xcIndice>

Argumentos

<expChave> é uma expressão que retorna o valor chave a ser colocado no índice para cada registro na área de trabalho corrente. <expChave> pode ser do tipo caractere, data, lógico, ou numérico. O tamanho
máximo da expressão da chave de indexação é de 250 caracteres.

TO <xcIndice> especifica o nome do arquivo de índices a ser criado. O nome do arquivo pode ser especificado literalmente ou por expressão caractere entre parênteses. Normalmente, a extensão de arquivo padrão é (.ntx).

O comando INDEX ON cria um arquivo que contém um índice dos registros do arquivo de dados corrente baseado em <expChave>. Quando o arquivo de índices é usado, os registros do arquivo de dados aparecem na ordem da expressão chave, embora o índice não altere a ordem física dos registros dentro do arquivo de dados. O comando INDEX ordenas as chaves de caractere de acordo com o valor ASCII de cada caractere dentro da cadeia, valores numéricos em ordem numérica, ordem cronológica dos valores de datas, considerando datas em branco como valores baixos, e valores lógicos classificados com valor verdadeiro (.T.) considerados como valores altos. No exemplo acima estamos indexando o arquivo pelo Código.
Abraços,