Página 1 de 1

Ajuda,

Enviado: 13 Ago 2011 18:39
por erico.santana
Ola pessoal sou novato na linguagem e no forum, estou tentando fazer algo simples para aprendizado, uma situação e a seguinte tenho um campo character com tamanho 1 ele pode estar preenchido ou nao, quando ele nao estiver preenchido gostaria de salvar o numero 1 em outro campo do mesmo dbf, isso percorrendo todos os registros, qual a ideia pessoal? alguma dica, algum lugar aonde possa achar algo do genero para ler, obrigado

Ajuda,

Enviado: 13 Ago 2011 20:53
por ANDRIL
Amigo, seja bem vindo ao forum.

Para fazer isso há algumas maneiras, como é para aprendizado, vou postar aqui um código que envolve um loop.

Código: Selecionar todos

//--limpa a tela no inicio do sistema
cls

//--A tabela.dbf é o banco de dados, nela tem dois campos com a seguinte estrutura:
//--CMP1 C,1 e CMP2 C,1  ou seja, os 2 campos aqui são do tipo caracter com tamanho de um caracter, ok

USE TABELA.DBF 

//--posiciona o ponteiro no topo da tabela
go top

//--condicao, que diz: faça enquanto o fim da tabela nao for encontrado.
DO WHILE !EOF()
    //--percorre a tabela inteira do inicio ao fim avaliando o primeiro campo e se CMP1 for vazio ou seja
    //--ter apenas um espaco. Tambem pode-se utilizar a funcao EMPTY() para testar se o campo é vazio, assim
    //-- if empty(CMP1)=.T.

    if CMP1=" "
          //--se for vazio, preenche o campo CMP2 com o numero "1" caracter
          replace CMP2 with "1"
          //--funcao que força a gravar a alteracao no disco HD
          dbcommit()
    endif
    
    //--vamos para o proximo registro e recomeça o procedimento 
    //--ate que a tabela seja toda percorrida
    SKIP +1

ENDDO

//--aqui fechamos a tabela.dbf
close 
//--encerramos o sistema
quit
Como disse, há diversas maneiras de fazer isso, inclusive usando apenas uma linha, com a função DbEval(), mais em se tratando de aprendizado, já se tem aqui, mais algumas noções sobre a linguagem.

Boa sorte.
Abraços.

Ajuda,

Enviado: 14 Ago 2011 21:35
por erico.santana
Andril Boa noite, e obrigado pela ajuda, eu consegui enteder bem o codigo ali, lhe agradeço, estou precisando fazer uns bicos em um sistema clipper e to tendo que aprender, a minha area e totalmente diferente, agradeço sua ajuda...

Muito Obrigado