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: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, 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: 3092
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