Error BASE/1003 ...

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

Moderador: Moderadores

arcanjoebc
Usuário Nível 2
Usuário Nível 2
Mensagens: 63
Registrado em: 23 Dez 2015 23:58
Localização: Tramandaí/RS

Error BASE/1003 ...

Mensagem por arcanjoebc »

Estou tendo dificuldades em achar onde estou errando ao fazer um pequeno programa. Eu rodo o executável no terminal do Ubuntu 15.10 64 bits e, quando vou cadastrar um registro, ocorre a seguinte mensagem em uma janela vermelha:

Error BASE / 1003. Variable does not exist: COD

Só que não é uma variável e sim, um campo da base de dados. Abaixo coloco o código, se puderem me ajudar, eu agradeço-lhes desde já.

Código: Selecionar todos

use clientes

public mem_cod, mem_nome, mem_nasc, mem_sexo, mem_cid, mem_end
public mem_cep, mem_fone, mem_cpf, mem_prof, mem_ec, mem_obs
public confirma

do while .t.
   setcolor("w/b")
   clear screen
   quadro(1,1,40,140)
   @ 03,30 say "    INCLUSAO DE NOVOS CLIENTES"
   @ 04,30 say "    ======== == ===== ========"
   @ 06,30 say "Codigo..........:"
   @ 08,30 say "Nome............:"
   @ 10,30 say "Dt. Nasc. ......:"
   @ 12,30 say "Sexo............:"
   @ 14,30 say "Estado Civil....:"
   @ 16,30 say "Endereco........:"
   @ 18,30 say "CEP.............:"
   @ 20,30 say "Cidade..........:"
   @ 22,30 say "Estado..........:"
   @ 24,30 say "Telefone........:"
   @ 26,30 say "CPF.............:"
   @ 28,30 say "Profissao.......:"
   @ 30,30 say "Observacao......:"
   @ 32,30 say "CONFIRMA? (S/N) :"
   mem_cod  = 0000
   mem_nome = space(30)
   mem_nasc = ctod("  /  /    ")
   mem_sexo = space(01)
   mem_end  = space(35)
   mem_cid  = space(35)
   mem_cep  = space(10)
   mem_uf   = space(02)
   mem_fone = space(14)
   mem_cpf  = space(14)
   mem_prof = space(20)
   mem_ec   = space(01)
   mem_obs  = space(50)
   confirma = space(01)
   @ 06,49 say mem_cod  pict "9999"
   @ 08,49 say mem_nome pict "@!30"
   @ 10,49 say mem_nasc pict "  /  /    "
   @ 12,49 say mem_sexo pict "!"
   @ 14,49 say mem_ec   pict "!"
   @ 16,49 say mem_end  pict "@!35"
   @ 18,49 say mem_cep  pict "99.999-999"
   @ 20,49 say mem_cid  pict "@!20"
   @ 22,49 say mem_uf   pict "!!"
   @ 24,49 say mem_fone pict "(99) 9999-9999"
   @ 26,49 say mem_cpf  pict "999.999.999-99"
   @ 28,49 say mem_prof pict "@!20"
   @ 30,49 say mem_obs  pict "@!50"
   @ 32,49 say confirma pict "!"
   @ 06,49 get mem_cod  pict "9999"
   read
   if mem_cod = 0000
     exit
   endif
   locate for cod = mem_cod
   if found()
      enter = space(01)
      @ 35,49 say "Mensagem: Cliente ja cadastrado. Pressione <ENTER> " get enter
      read
      @ 35,49 say "                                                   "
      loop
   endif
   @ 06,49 get mem_cod  pict "9999"
   @ 08,49 get mem_nome pict "@!30"
   @ 10,49 get mem_nasc pict "  /  /    "
   @ 12,49 get mem_sexo pict "!"
   @ 14,49 get mem_ec   pict "!"
   @ 16,49 get mem_end  pict "@!35"
   @ 18,49 get mem_cep  pict "99.999-999"
   @ 20,49 get mem_cid  pict "@!20"
   @ 22,49 get mem_uf   pict "!!"
   @ 24,49 get mem_fone pict "(99) 9999-9999"
   @ 26,49 get mem_cpf  pict "999.999.999-99"
   @ 28,49 get mem_prof pict "@!20"
   @ 30,49 get mem_obs  pict "@!50"
   @ 32,49 get confirma pict "!"
   read
   if confirma = "S"
     append blank
     replace cod  with mem_cod
     replace nome with mem_nome
     replace nasc with mem_nasc
     replace sexo with mem_sexo
     replace ec   with mem_ec
     replace end  with mem_end
     replace cep  with mem_cep
     replace cid  with mem_cid
     replace uf   with mem_uf
     replace fone with mem_fone
     replace cpf  with mem_cpf
     replace prof with mem_prof
     replace obs  with mem_obs
   endif
enddo
close all
return nil
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20420
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Error BASE/1003 ...

Mensagem por JoséQuintas »

Tem esse campo no arquivo?
o programa conseguiu abrir o arquivo?
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
alxsts
Colaborador
Colaborador
Mensagens: 3110
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Error BASE/1003 ...

Mensagem por alxsts »

Olá!
arcanjoebc escreveu:Só que não é uma variável e sim, um campo da base de dados.
Tente abrir o arquivo assim:

Código: Selecionar todos

use clientes shared new
Dá para melhorar a qualidade do teu código e a performance do programa. O uso do comando LOCATE não é apropriado para o uso que você está fazendo dele. O correto é ter uma tabela, de clientes no caso, com pelo menos um índice (chave primária) e fazer uso da função DbSeek().
[]´s
Alexandre Santos (AlxSts)
arcanjoebc
Usuário Nível 2
Usuário Nível 2
Mensagens: 63
Registrado em: 23 Dez 2015 23:58
Localização: Tramandaí/RS

Error BASE/1003 ... [RESOLVIDO]

Mensagem por arcanjoebc »

Obrigado por responderem! Amigo José Quintas, eu não estava criando corretamente a base de dados DBF, então, o campo não existia. Agora, estou usando o seguinte código para criar a base de dados:

Código: Selecionar todos

*-----------------------------------------*
* PROGRAMA   : struc2.prg                 *
* AUTOR      : Everaldo Bernardo Cunha    *
* DATA       : 15/02/2016                 *
* FINALIDADE : Criar base de dados .dbf   *
*-----------------------------------------*
	 
PROCEDURE Struc2
if .not. file("clientes.dbf")
 aDBF := {}
 //
 aAdd(aDBF, {"COD", "N",10,0})
 aAdd(aDBF, {"NOME", "C",30,0})
 aAdd(aDBF, {"NASC", "D",08,0})
 aAdd(aDBF, {"END", "C",35,0})
 aAdd(aDBF, {"CID", "C",35,0})
 aAdd(aDBF, {"CEP", "C",10,0})
 aAdd(aDBF, {"UF", "C",02,0})
 aAdd(aDBF, {"FONE", "C",14,0})
 aAdd(aDBF, {"CPF", "C",14,0})
 aAdd(aDBF, {"PROF", "C",20,0})
 aAdd(aDBF, {"SEXO", "C",01,0})
 aAdd(aDBF, {"EC", "C",01,0})
 aAdd(aDBF, {"OBS", "C",50,0})
 //
 dbCreate("clientes",aDBF)
endif
RETURN
Então, o programa funcionou perfeitamente ... agradeço-lhes a ajuda, tudo de bom!

Everaldo
Responder