Array caractere/memo

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

Array caractere/memo

Mensagem por MARCELOG »

Olá pessoal!

Novamente, estou precisando de uma orientação.

O negócio é o seguinte:

Tenho um arquvivo principal, com registros relativos a atendimentos.

Gostaria de vincular a determinado registro no arquivo, os clientes relativos a este atendimento.

Muito provavelmente o número de clientes não vai superar 100.

Logo, achei um desperdício criar e "cuidar" de um DBF para armazenar apenas 2 informações: uma referência (1) e um código(6).

Pensei em utilizar um campo memo no registro para armazenar a referência e o código dos clientes.

Funcionou beleza.

Eu formatava o campo memo na largura desejada(7), obtinha o total de linhas, manipulava a linha obtendo a informação relativa a referência e o código, e jogava tudo numa matriz.

Ainda, com base no código do cliente, acrescentava mais um elemento na matriz, ou seja, o nome do cliente.

Posteriormente, criava um tbrowse fazia a manutenção, gravando tudo novamente no campo memo.

A prática é boa, mas nos testes, depois de algumas manutenções, o memo apresentava erro.

Então, eu li que posso tratar um campo caractere como um memo.

Esse campo caractere também tem limite de 64k, o que atende a necessidade e é absolutamente satisfatório.

O problema é que não sei como criar um campo caractere no DBF com a máxima largura e decimais disponíveis.

Não conseguir entender o CREATE FROM neste aspecto.

Então a dúvida?

O procedimento pretendido é viável?

Como criar o campo caractere no DBF com a capacidade máxima de armazenagem de dados?

PS:
Como faço a exibição do banco de dados com tbrowse, e possibilito a pesquisa e ordenção da coluna, a situação não funciona no presente caso.
Com efeito, ao criar uma coluna com o nome do cliente, a sua origem (:block) é o código.
Logo, não possível ordenar pelo nome virtual do cliente apresentado na tela, pois os dados originais não contém o mesmo, mas apenas uma referência ao código.


Alguém pode ajudar?

Obrigado

MGS
Responder