OPERACAO NAO SUPORTADA

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

Moderador: Moderadores

Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

OPERACAO NAO SUPORTADA

Mensagem por Linguagemclipper »

Deu esse erro "DOS Error 38" aqui comigo, mas percebí que os DBFs foram zerados...
Instante de pânico!
O backup foi salvo com HB_ZIPFILE() com senha no programa compilado em xHarbour e restaurado no Harbour... zerou tudo!
Agora vou ter que descobrir por quê que um não funciona com outro. Estou resolvendo minhas pendengas com o Harbour e migrando meu sistema do xHarbour para Harbour, mas toda vez tem uma treta.
Sorte que foi numa pasta de teste.
Editado pela última vez por Itamar M. Lins Jr. em 08 Set 2022 16:31, em um total de 1 vez.
Razão: O presente tópico foi movido da seção CA-Clipper, uma vez que seu conteúdo não tem relação com os objetivos daquela seção, onde só podem constar dúvidas técnicas de programação diretamente relacionadas com o Clipper.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

OPERACAO NAO SUPORTADA

Mensagem por JoséQuintas »

Linguagemclipper escreveu:O backup foi salvo com HB_ZIPFILE() com senha no programa compilado em xHarbour e restaurado no Harbour... zerou tudo!
Tá usando LIB gráfica?
As LIBs gráficas tendem a usar versões diferentes de tudo, por causa que XHarbour não tem, e costumam causar defeito no Harbour.
Parece até algo do tipo "o concorrente que se exploda".

Entendi direito? backup e restore é pelo programa?
Não que eu tenha tido problema, mas meu ZIP é pelo Harbour, e o UNZIP é pelo WINDOWS.
Uso o Windows pra UNZIP, restauro pelo HEIDISQL no MySQL, e depois rodo o aplicativo.
DBF ou MySQL, total ou meio a meio, tanto faz.

Backup é pra emergência, pra horas de problema.
Vai invertar moda pra essas horas.... aí é pedir por problema.
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/
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

OPERACAO NAO SUPORTADA

Mensagem por Linguagemclipper »

Eu quis dizer que tive esse mesmo erro "DOS Error 38", mas acabei citando uma função que não era do Clipper... ok, desculpe. Não estou usando lib gráfica.

Eu faço um backup diário localmente e um backup remoto que possibilita ler os bancos de dados em Home Office.

Descobrí que tinha posto a senha errada no HB_UNZIPFILE() por conta de um outro erro no oFTP:LISTFILES() que não trouxe as datas dos arquivos corretamente. Entretanto, o HB_UNZIPFILE() não deveria ter retornado .T. quando a senha está errada.

No xHarbour a função descompacta estando a senha certa ou errada, porém retorna .F. se errou a senha. Porém, no Harbour parece que retorna .T. quando consegue descompactar...
Returns
lCompress .T. if all file was successfully restored, otherwise .F.
Eu faço a descompactação em um diretório temporário e se retornar .T. eu copio desta pasta sobrescrevendo o diretório do sistema e depois apago esse temporário. Funcionava legal no xHarbour. Como é que eu vou saber se a senha do ZIP estava correta no Harbour?

Código: Selecionar todos

lUNZIP := HB_UNZIPFILE(cBACKUP, bUNZIP, ,cSEN1 ,cDIRTMP, aEXTRACT )
aFILES := DIRECTORY(cDIRTMP+"*.*")
IF lUNZIP
	MSGRODA("SUCESSO! Copiando os arquivos para a pasta do sistema...", "W+/BG")
	// COPIA OS ARQUIVOS DESCRIPTOGRAFADOS PARA A PASTA ATUAL
	// SE ARQUIVO EXISTIR, SOBRESCREVE SEM AVISO					
	// COPY FILE &(cDIRTMP+"*.*") TO &(cCURDIR+"*.*")
	AEval( aFiles, { |aFile| FILECOPY( cDIRTMP+aFile[1], cCURDIR+aFILE[1] ) } )					
	ALERT("RESTAURAÇÃO DO BACKUP REALIZADO COM SUCESSO!")					
ELSE
	ALERT("FALHA NA RESTAURAÇÃO DO BACKUP. ERROU A SENHA?")
ENDIF

// APAGA A SUBPASTA TEMP
IF ISDIR(cDIRTMP)					
	AEval( aFiles, { |aFile| FILEDELETE( cDIRTMP+aFile[1] ) } )					
	nERRO := DirRemove( cDIRTMP )              // APAGA DIRETÓRIO TEMPORÁRIO
	FILEDELETE( cBACKUP )
ENDIF
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

OPERACAO NAO SUPORTADA

Mensagem por Itamar M. Lins Jr. »

Olá!
Porém, no Harbour parece que retorna .T. quando consegue descompactar...
Pois, é o correto então!

Retorno T se deu certo e F caso não descompacte.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
carlaoonline
Usuário Nível 3
Usuário Nível 3
Mensagens: 190
Registrado em: 24 Ago 2014 22:38
Localização: Porto Alegre-RS

OPERACAO NAO SUPORTADA

Mensagem por carlaoonline »

Bom dia!
Linguagemclipper escreveu:mas toda vez tem uma treta.

kkkkkkk Parece eu, migrando do console para Gui...... bem vindo ao clube!!!
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

OPERACAO NAO SUPORTADA

Mensagem por Linguagemclipper »

Pessoal, só pra fechar o tópico: Não tem nada de errado ou diferente na função HB_UNZIPFILE(). Funcionam exatamente iguais no Harbour e xHarbour, o problema é que coloquei a senha errada mesmo.

O HB_UNZIPFILE() vai sempre descompactar os arquivos, acertando ou não a senha, mas vai retornar .F. se a senha estiver errada.
Se a senha estiver errada você não consegue abrir os bancos de dados.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Responder