erro base/1003 Variavel não existe
Moderador: Moderadores
erro base/1003 Variavel não existe
Boa tarde a todos!
Estou convertendo meu sistema clipper 5.2 para harbour, depois de muitas tentativas e de muita consulta aqui no forum consegui criar o executável.
O problema é que ele não reconhece o nome dos campos do arquivo aberto, vou dar um exemplo bem simples:
estrutura do arquivo TESTE.DBF
CODIGO Caracter 6
PRODUTO Caracter 50
use TESTE alias TST new
CODPRO := CODIGO (desta maneira dá o erro)
CODPRO := TST->CODIGO (desta maneira não da erro)
==> utilizo as seguintes chaves de compilação: /w3 /es2 /v /a /b /m /v /n2 /w0
Estou convertendo meu sistema clipper 5.2 para harbour, depois de muitas tentativas e de muita consulta aqui no forum consegui criar o executável.
O problema é que ele não reconhece o nome dos campos do arquivo aberto, vou dar um exemplo bem simples:
estrutura do arquivo TESTE.DBF
CODIGO Caracter 6
PRODUTO Caracter 50
use TESTE alias TST new
CODPRO := CODIGO (desta maneira dá o erro)
CODPRO := TST->CODIGO (desta maneira não da erro)
==> utilizo as seguintes chaves de compilação: /w3 /es2 /v /a /b /m /v /n2 /w0
Flávio dos Santos Szelbracikowski
ssflavio@osite.com.br
ssflavio@osite.com.br
erro base/1003 Variavel não existe
Vc mesmo respondeu sua pergunta, o Clipper aceita qualquer coisa, o Harbour sem esses parâmetros, é quase igual tbem, mas com os parâmetros que vc usa, ele faz uma checagem rigorosa, por isso aponta erro.
Marcelo Neves
https://produto.mercadolivre.com.br/MLB ... 0067609615
whatsapp (41) 99786-3995
http://harbourdeveloper.blogspot.com
marcelo.souza.das.neves@gmail.com
https://produto.mercadolivre.com.br/MLB ... 0067609615
whatsapp (41) 99786-3995
http://harbourdeveloper.blogspot.com
marcelo.souza.das.neves@gmail.com
erro base/1003 Variavel não existe
obrigado pela ajuda, mas não tem como ficar igual ao clipper?
o sistema é muito grande e na maioria das vezes não é utilizada a referência do ALIAS
talvez se tirasse alguma das chaves ou adicionasse alguma???
o sistema é muito grande e na maioria das vezes não é utilizada a referência do ALIAS
talvez se tirasse alguma das chaves ou adicionasse alguma???
Flávio dos Santos Szelbracikowski
ssflavio@osite.com.br
ssflavio@osite.com.br
- JoséQuintas
- Administrador

- Mensagens: 20416
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
erro base/1003 Variavel não existe
Na verdade É igual o Clipper, seus comandos é que bagunçaram tudo.ssflavio escreveu:obrigado pela ajuda, mas não tem como ficar igual ao clipper?
Foi resolver uma coisa, e piorou mais ainda.
Confira seus parâmetros, e retire tudo que não interessa.
Esses mesmos parâmetros no Clipper iam causar o mesmo erro, então..... só pode ter acrescentado algo sem saber direito para o que servia.
Código: Selecionar todos
d:\>Harbour
Harbour 3.4.0dev (1662d538b6) (2019-01-28 19:13)
Copyright (c) 1999-2019, https://github.com/JoseQuintas/harbour34/
Syntax: harbour <file[s][.prg]|@file> [options]
Options: -a automatic memvar declaration
-b debug info
-build display detailed version info
-credits display credits
-d<id>[=<val>] #define <id>
-es[<level>] set exit severity
-fn[:[l|u]|-] set filename casing (l=lower u=upper)
-fd[:[l|u]|-] set directory casing (l=lower u=upper)
-fp[:<char>] set path separator
-fs[-] turn filename space trimming on or off (default)
-g<type> output type generated is <type> (see below)
-gc[<type>] output type: C source (.c) (default)
<type>: 0=compact (default) 1=normal 2=verbose
3=generate real C code
-gh output type: Harbour Portable Object (.hrb)
-gd[.<destext>] generate dependencies list into (.d) file
-ge[<mode>] error output <mode>: 0=Clipper (default)
1=IDE friendly
-i<path> #include file search path
-i[-|+] disable/enable support for INCLUDE envvar
-j[<file>] generate i18n gettext file (.pot)
-k compilation mode (type -k? for more data)
-l suppress line number information
-m compile module only
-n[<type>] no implicit starting procedure
<type>: 0=no implicit starting procedure
1=no starting procedure at all
2=add starting procedure if necessary
-o<path> object file drive and/or path
-p[<path>] generate pre-processed output (.ppo) file
-p+ generate pre-processor trace (.ppt) file
-q quiet
-q0 quiet and don't display program header
-q2 disable all output messages
-ql hide line counter gauge
-r:<max> set maximum number of preprocessor iterations
-s[m] syntax check only [minimal for dependencies list]
-u[<file>] use command def set in <file> (or none)
-u+<file> add command def set from <file>
-undef:<id> #undef <id>
-v variables are assumed M->
-w[<level>] set warning level number (0..3, default 1)
-z suppress shortcutting (.and. & .or.)
@<file> compile list of modules in <file>
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/
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/
erro base/1003 Variavel não existe
Caro José Quintas, é uma honra poder ser ajudado por você!
Seus posts são sempre muito importantes na resolução dos problemas por aquí!
qual seria a sequencia de chaves que você usa para compilar os seus sistemas em harbour?
Seus posts são sempre muito importantes na resolução dos problemas por aquí!
qual seria a sequencia de chaves que você usa para compilar os seus sistemas em harbour?
Flávio dos Santos Szelbracikowski
ssflavio@osite.com.br
ssflavio@osite.com.br
- JoséQuintas
- Administrador

- Mensagens: 20416
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
erro base/1003 Variavel não existe
Vai pelo lado mais simples...ssflavio escreveu:qual seria a sequencia de chaves que você usa para compilar os seus sistemas em harbour?
retire TODOS os parâmetros
Compile e veja o que acontece.
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/
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/
- Jairo Maia
- Moderador
- Mensagens: 2821
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
- Curtiu: 2 vezes
erro base/1003 Variavel não existe
Olá ssflavio,
Primeiro, concordo com o José e o MSDN, quando dizem que melhor nesse momento não usar parâmetros. A medida que você for lapidando seu sistema ao Harbour então vai incrementando.
Quanto a sua dúvida:
Então se você fizer CODPRO := M->CODIGO, também funciona. Esse parâmetro faz com que as variáveis do arquivo corrente não sejam lidas, isso é o mesmo que SELECT 0, ou seja, deixar a área sem arquivo aberto (para o caso de leitura de variáveis).
Primeiro, concordo com o José e o MSDN, quando dizem que melhor nesse momento não usar parâmetros. A medida que você for lapidando seu sistema ao Harbour então vai incrementando.
Quanto a sua dúvida:
Veja que você está usando o parâmetro -v. Isso significa que: -v = variables are assumed M-> (Memory variables).Eric.Developer escreveu:use TESTE alias TST new
CODPRO := CODIGO (desta maneira dá o erro)
CODPRO := TST->CODIGO (desta maneira não da erro)
Então se você fizer CODPRO := M->CODIGO, também funciona. Esse parâmetro faz com que as variáveis do arquivo corrente não sejam lidas, isso é o mesmo que SELECT 0, ou seja, deixar a área sem arquivo aberto (para o caso de leitura de variáveis).
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 8029
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 2 vezes
- Curtiram: 1 vez
erro base/1003 Variavel não existe
Ola!
../a /v..
/a É automática a declaração.
/v Assume MEMVAR.
Então; CODIGO é uma MEMVAR ou FIELD (Campo do DBF) ? Ele não sabe e retorna erro, porque assumiu CODIGO como M->.
Saudações,
Itamar M. Lins Jr.
../a /v..
/a É automática a declaração.
/v Assume MEMVAR.
Então; CODIGO é uma MEMVAR ou FIELD (Campo do DBF) ? Ele não sabe e retorna erro, porque assumiu CODIGO como M->.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20416
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
erro base/1003 Variavel não existe
Funciona se for variável, equivale ao -v ou -a, mas é justamente a origem do post, e causa do erro.Jairo Maia escreveu:Então se você fizer CODPRO := M->CODIGO, também funciona.
A diferença entre Clipper e Harbour é: o Harbour vém com algumas coisas úteis já ativadas, então precisa desativar pra ficar "inútil" igual no Clipper.
Ao compilar sem parâmetro nenhum, através das mensagens de erro, e dessa lista de parâmetros, por dedução ou teste, vai saber o que usar.
No geral, o default diferente do Harbour + hbmk2 é:
-n valer somente o que tem dentro do fonte, e não o nome externo do arquivo
-w3 -es2 obrigar a declarar variáveis/campos de arquivo, pra não ter problemas depois (o que teve)
-m tratar cada fonte separadamente
-w3 -es2 mostrou que poderia acontecer esse seu erro, o objetivo é justamente impedir que isso não aconteça, já mostrar que o fonte precisa ser alterado.
O problema foi o que usou pra anular essa checagem.
Além de anular a checagem, ainda modificou seus fontes dizendo que NADA VÉM DE ARQUIVO, é TUDO variável de memória.
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/
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/
- Jairo Maia
- Moderador
- Mensagens: 2821
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
- Curtiu: 2 vezes
erro base/1003 Variavel não existe
Eric.Developer, isso se aplica se não compilar com o parâmetro -v. Se usar -v, as variáveis de arquivo (Field) não serão visíveis. Isso provocava o erro relatado pelo autor do tópico.Eric.Developer escreveu:uma variável sem prefixo (ALIAS, M, FIELD) , o padrão é, pesquisar primeiramente na TABELA, e depois na MEMÓRIA (PUBLIC, PRIVATE).
Oi!? Não entendi. Não me lembro de ter feito qualquer menção a você nesse tópico antes dessa mensagem.Eric.Developer escreveu:O Sr esta enganado, fez montagem de mensagem pra pessoa errada.
Jairo Maia escreveu:
Quanto a sua dúvida:
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
- JoséQuintas
- Administrador

- Mensagens: 20416
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
erro base/1003 Variavel não existe
Pois é Jairo... acho que pegou o trecho de um post de resposta, e isso causou pegar usuário errado.Jairo Maia escreveu:Não me lembro de ter feito qualquer menção a você nesse tópico antes dessa mensagem.
Mas voltando ao tópico:
Só faltou eu mencionar uma coisa:
O contrário da checagem máxima (-w3 -es2) é checagem mínima (-w0 -es0).
O problema da checagem máxima é quando pega fonte antigo, geralmente do Clipper.
Acaba tendo quilômetros de fonte pra acertar, e pode levar meses pra fazer isso.
Por isso é comum desativar a checagem, e muitas vezes nunca mais ativar.
Mas se interessar depois fazer isso, tem como ativar/desativar pra somente alguns fontes.
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/
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/
erro base/1003 Variavel não existe
obrigado queridos amigos!
consegui minimizando as chaves como voces recomendara
ficou assim: /b /es2 /m /n2
considerando que /b e /m não alteram nada, sobrou
/es2 /n2
desculpa a demora, mas estive viajando!!!
:{
consegui minimizando as chaves como voces recomendara
ficou assim: /b /es2 /m /n2
considerando que /b e /m não alteram nada, sobrou
/es2 /n2
desculpa a demora, mas estive viajando!!!
:{
Flávio dos Santos Szelbracikowski
ssflavio@osite.com.br
ssflavio@osite.com.br
- JoséQuintas
- Administrador

- Mensagens: 20416
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
erro base/1003 Variavel não existe
na verdade alteram sim, e a recomendação foi deixar somente o necessário.ssflavio escreveu:consegui minimizando as chaves como voces recomendaram
ficou assim: /b /es2 /m /n2
considerando que /b e /m não alteram nada...
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/
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/

