DOS Error 2
Moderador: Moderadores
DOS Error 2
Boa tarde amigos!
Depois que migrei o sistema de clipper para harbour, tem ocorrido com muita frequencia o seguinte erro:
Error DBFNTX/1003 Erro de abertura: SGC_RMO6.ntx (DOS Error 2)
é uma rede pequena, com uns 6 usuarios e o servidor é um windows7 com pasta compartilhada
gratidão pela ajuda!
Depois que migrei o sistema de clipper para harbour, tem ocorrido com muita frequencia o seguinte erro:
Error DBFNTX/1003 Erro de abertura: SGC_RMO6.ntx (DOS Error 2)
é uma rede pequena, com uns 6 usuarios e o servidor é um windows7 com pasta compartilhada
gratidão pela ajuda!
Flávio dos Santos Szelbracikowski
ssflavio@osite.com.br
ssflavio@osite.com.br
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
DOS Error 2
Diz que trocou pra Harbour.... por acaso foi pelo antigo 3.0 ?? ele tinha certos problemas referente à pasta atual, e já deve ter uns 10 anos ou mais.
A princípio também, considere que Harbour NÃO é DOS, é Windows.
É importante que o EXE saiba qual é a pasta atual.
Se está criando atalho, confirme que o atalho está indicando a pasta correta, NÃO basta que indique somente o EXE com path completo.
Uma coisa é criar o atalho a partir da pasta: clique da direita, enviar para, área de trabalho criar atalho.
E outra coisa é criar o atalho, procurar, localizar pasta, e indicar o EXE.
Apesar de parecer a mesma coisa, um coloca o PATH da pasta do EXE, e o outro deixa sem pasta default, que pode ser qualquer uma.
Depois disso eu diria:
Considere que não trocou, e veja porque acusa que o arquivo não existe, da mesma forma que faria com o Clipper, exceto pelo fato já mencionado, que Harbour é Windows.
Chamando por BAT também pode ser uma opção de fixar o nome da pasta, mas é desaconselhável, já que BATs estão deixando de existir no Windows há algum tempo, e o console está sendo substituído por: powershell, console Linux ou console Android.
A princípio também, considere que Harbour NÃO é DOS, é Windows.
É importante que o EXE saiba qual é a pasta atual.
Se está criando atalho, confirme que o atalho está indicando a pasta correta, NÃO basta que indique somente o EXE com path completo.
Uma coisa é criar o atalho a partir da pasta: clique da direita, enviar para, área de trabalho criar atalho.
E outra coisa é criar o atalho, procurar, localizar pasta, e indicar o EXE.
Apesar de parecer a mesma coisa, um coloca o PATH da pasta do EXE, e o outro deixa sem pasta default, que pode ser qualquer uma.
Depois disso eu diria:
Considere que não trocou, e veja porque acusa que o arquivo não existe, da mesma forma que faria com o Clipper, exceto pelo fato já mencionado, que Harbour é Windows.
Chamando por BAT também pode ser uma opção de fixar o nome da pasta, mas é desaconselhável, já que BATs estão deixando de existir no Windows há algum tempo, e o console está sendo substituído por: powershell, console Linux ou console Android.
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/
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

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
DOS Error 2
Olá!
Talvez um SET DEFAULT ajude...
Talvez um SET DEFAULT ajude...
Código: Selecionar todos
// The example demonstrates the effect of changing the default
// drectory of an xHabour application.
PROCEDURE Main
SET PATH TO
? File( "Customer.dbf" ) // Result: .F.
SET DEFAULT TO C:\xhb\data
? File( "Customer.dbf" ) // Result: .T.
SET DEFAULT TO C: // define default drive
SET DEFAULT TO .. // Change to parent directory
SET DEFAULT TO \ // Change to root directory
RETURN
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
DOS Error 2
Obridago pelas dicas!
o harbour que estou usando é o 3.2
esse erro não da sempre, somente quando quer
suponha que deu o erro agora, ai ele fecha o sistema. É só abrir o sistema novamente que ele funciona.
será que estou fazendo alguma coisa errada???
vou postar a rotina de abertura dos arquivos
o harbour que estou usando é o 3.2
esse erro não da sempre, somente quando quer
suponha que deu o erro agora, ai ele fecha o sistema. É só abrir o sistema novamente que ele funciona.
será que estou fazendo alguma coisa errada???
vou postar a rotina de abertura dos arquivos
Código: Selecionar todos
function NET_ARQ
parameters PFILE,PINDEX,PEXCLU,APELID
private I,INDICE1,INDICE2,INDICE3,INDICE4,INDICE5,INDICE6,INDICE7,INDICE8,LERRO
APELID = if(type('APELID') # 'C','',APELID)
PINDEX = if(type('PINDEX') # 'C','',PINDEX)
PEXCLU = if(type('PEXCLU') # 'L',.F.,PEXCLU)
LERRO := st()
sele 0
for I = 1 to 10
if PEXCLU
use &PFILE. exclusive alias &APELID.
else
use &PFILE. alias &APELID.
endif
if used()
exit
endif
format('Tentando abrir '+PFILE,24,'C')
inkey(1)
next
rt(LERRO)
if used()
INDICE1 = parse(@PINDEX)
INDICE2 = parse(@PINDEX)
INDICE3 = parse(@PINDEX)
INDICE4 = parse(@PINDEX)
INDICE5 = parse(@PINDEX)
INDICE6 = parse(@PINDEX)
INDICE7 = parse(@PINDEX)
INDICE8 = parse(@PINDEX)
set index to &INDICE1.,&INDICE2.,&INDICE3.,&INDICE4.,&INDICE5.,&INDICE6.,&INDICE7.,&INDICE8.
endif
return used()
Flávio dos Santos Szelbracikowski
ssflavio@osite.com.br
ssflavio@osite.com.br
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
DOS Error 2
Primeira coisa é reescrever essa rotina de forma decente.
Acho que é um milagre ela funcionar.
Só estas duas possibilidades já deixa esquisito funcionar:
Acho que é um milagre ela funcionar.
Só estas duas possibilidades já deixa esquisito funcionar:
Código: Selecionar todos
USE ARQUIVO ALIAS &("")
SET INDEX TO &("nome1"), &( "" ), &( "" ), &( "" ), &( "" )
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/
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/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
DOS Error 2
Olá!
Use a nova sintaxe do Harbour.
Coloque o caminho do indice:
Em outra parte do seu sistema pode está trocando ou mudando de diretório.
Saudações,
Itamar M. Lins Jr.
Código: Selecionar todos
APELID = if(type('APELID') # 'C','',APELID)Código: Selecionar todos
hb_default(@APELID,'')
hb_default(@PEXCLU,.F.)Código: Selecionar todos
set index to c:\lugar_do_NTX\arquivo1.ntx, ...Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
DOS Error 2
Olá!
Saudações,
Itamar M. Lins Jr.
Segure a onda Quintas, tenha fé!...
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
DOS Error 2
Editei a mensagem, mas postou em seguida, antes de eu terminar.
Dê uma olhada com as alterações.
Dê uma olhada com as alterações.
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/
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/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
DOS Error 2
Olá!
Saudações,
Itamar M. Lins Jr.
Eu também faço isso... As coisas aqui funcionam por milagres ás vezes. rsrsrsrsAcho que é um milagre ela funcionar.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
DOS Error 2
Funcionaria mesmo no Clipper, mas teria que criar a função hb_Default() no Clipper:
A lista de índices, também poderia ser array, o que talvez simplificasse.
NÃO sei o que Parse() faz, provavelmente daria pra substituir por hb_RegExSplit()
Isso permite fazer macro do resultado da expressao, ao invés da variável diretamente.
Evita gambiarra, e no Harbour evita problemas com variáveis LOCAL.
E expande possibilidades:
Código: Selecionar todos
FUNCTION NET_ARQ( cDBFName, cIndexList, lExclusive, cAlias )
LOCAL I, lErro, cNtxName, lIndex := .F.
hb_Default( @cAlias, "" )
hb_Default( @cIndexList, "" )
hb_Default( @lExclusive, .F. )
lErro := st()
SELECT 0
FOR I = 1 to 10
IF lExclusive
IF Empty( cAlias )
USE ( cDbfName ) EXCLUSIVE
ELSE
USE ( cDbfName ) EXCLUSIVE ALIAS &( cAlias )
ENDIF
ELSE
IF Empty( cAlias )
USE ( cDBFName )
ELSE
USE ( cDBFName ) ALIAS &( cAlias )
ENDIF
ENDIF
IF used()
EXIT
ENDIF
format( 'Tentando abrir ' + cDBFName, 24, 'C' )
Inkey(1)
NEXT
rt( lErro )
IF Used()
DO WHILE ! Empty( cNtxName := Parse( @cIndexList ) )
dbSetIndex( cNtxName )
lIndex := .T.
ENDDO
IF lIndex
SET ORDER TO 1
ENDIF
ENDIF
RETURN Used()
NÃO sei o que Parse() faz, provavelmente daria pra substituir por hb_RegExSplit()
Código: Selecionar todos
&( expressao )
Evita gambiarra, e no Harbour evita problemas com variáveis LOCAL.
E expande possibilidades:
Código: Selecionar todos
&( "indice" + Str( 1, 1 ) )
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
DOS Error 2
Se por acaso quiser criar a função hb_Default() no Clipper ou no XHarbour: ( no harbour já tem )
Se o tipo da variável for diferente do default, o que inclui Nil - nada - assume o default.
Isso vai deixar x=1, porque x não tem conteúdo
Isso vai deixar y=2, porque y contém "a" que não é numérico, e 2 é numérico.
Código: Selecionar todos
FUNCTION hb_Default( xVar, xDefault )
IF ValType( xVar ) != ValType( xDefault )
xVar := xDefault
ENDIF
RETURN Nil
Código: Selecionar todos
LOCAL x, y := "a"
hb_Default( @x, 1 )
hb_Default( @y, 2 )
Isso vai deixar y=2, porque y contém "a" que não é numérico, e 2 é numérico.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
DOS Error 2
Só um comentário extra:
Isso mostra que, se alterar o fonte Clipper pra funcionar no Harbour, ainda vai funcionar em Clipper.
Não precisa ter fontes diferentes pra cada um, é só ajustar o fonte pra funcionar nos dois.
Isso é interessante durante a fase de migração, assim pode voltar pro Clipper ou Harbour na hora que quiser.
Uma vez funcionando 100% em Harbour... aí pode fazer a festa, e não precisa mais ser compatível.
Isso mostra que, se alterar o fonte Clipper pra funcionar no Harbour, ainda vai funcionar em Clipper.
Não precisa ter fontes diferentes pra cada um, é só ajustar o fonte pra funcionar nos dois.
Isso é interessante durante a fase de migração, assim pode voltar pro Clipper ou Harbour na hora que quiser.
Uma vez funcionando 100% em Harbour... aí pode fazer a festa, e não precisa mais ser compatível.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
DOS Error 2
Isso é pra chamar a atenção de que a rotina precisa ser reescrita/ajustada/melhorada.Acho que é um milagre ela funcionar.
Deve usar trocentas vezes essa rotina, e pode ter trocentos problemas.
Se der uma geral, evita trocentos erros que poderiam surgir durante ou depois.
É que tem horas, que se só falando assim pra gente mexer numa rotina antiga, ainda mais quando ela continua funcionando na maioria das vezes... rs
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
DOS Error 2
Só um comentário, de coisas desse tipo:
Outro dia criei uma função pra retornar valor do SQL.
Funcionou direito.
Só que comecei a errar, porque oras eu colocava "1+1", oras eu colocava "SELECT 1+1"
Solução:
Alterei o nome da função
E alterei todos os fontes aonde já tinha usado a função.
Deu trabalho? alterar algo que já funcionava e já estava em uso?
Sim... Mas agora não esqueço mais que não precisa o SELECT kkkk
Como eu digo sempre: o fonte é PRA NÓS, e não para o computador.
Outro dia criei uma função pra retornar valor do SQL.
Código: Selecionar todos
:ReturnValue( "1 + 1" )
Só que comecei a errar, porque oras eu colocava "1+1", oras eu colocava "SELECT 1+1"
Solução:
Alterei o nome da função
Código: Selecionar todos
:ReturnSelect( "1+1" )
Deu trabalho? alterar algo que já funcionava e já estava em uso?
Sim... Mas agora não esqueço mais que não precisa o SELECT kkkk
Como eu digo sempre: o fonte é PRA NÓS, e não para o computador.
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/
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/
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
DOS Error 2
Verifique se esse servidor está usando recursos de economia de energia. Se estiver, desative. Servidores não podem usar recursos que deixam o HDD desligar ou ficar em soneca, no primeiro momento ocorre exatamente o que relatou, depois ao tentar novamente o HDD já acordou e dá certo. Verifique se não é isso...ssflavio escreveu:Depois que migrei o sistema de clipper para harbour, tem ocorrido com muita frequencia o seguinte erro:
Error DBFNTX/1003 Erro de abertura: SGC_RMO6.ntx (DOS Error 2)
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)
