* Clipper - NTFS e DOS *
Moderador: Moderadores
-
jorgepacheco
- Usuário Nível 1

- Mensagens: 4
- Registrado em: 08 Jun 2006 09:12
* Clipper - NTFS e DOS *
Pessoal, tem algum problema dos sistemas clipper rodar em maquinas que tem o xp instalado com o sistema de arquivo NTFS ? pergunto porque um softer meu gera um arquivo texto baseado em determinada data filtrada pelo indice em um ntx, no eindows95 e 98 funciona correto, mas no XP e 2000 não gera correto, hora vem data que não está no escopo, hora vem correto. e não tem NADA de errado com o fonte. o sistema é compilado em clipper52 e linkado com blinker3. Se alguêm souber algo sobre o que poderia ser isso, agradeço, pois estou quase endoidando com essa situação. Já vi opções regionais, formato de data, e nada dá geito. ME AJUDEM. 
-
Dudu_XBase
- Membro Master

- Mensagens: 1071
- Registrado em: 25 Ago 2003 16:55
Existem sim alguns problemas com o DOS em ambiente NT/XP mas solucionáveis.
Mas problemas com relação a data nunca vi esse problema.
Fv poste um trecho do seu programa onde vc inicia a geração pela data.
Mas problemas com relação a data nunca vi esse problema.
Fv poste um trecho do seu programa onde vc inicia a geração pela data.
________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle
-
jorgepacheco
- Usuário Nível 1

- Mensagens: 4
- Registrado em: 08 Jun 2006 09:12
Aí está a geração do indice.
Olá, é uma geração simples : Como é em rede, uso uma função para verificar o nome do indice, pois se existir, crio outro, por exemplo lixo01.ntx se existir, crio lixo02.ntx e assim por diante. Depois é só indexar com a condição.
//---gerando indice parcial do RE.
sele lfre
NtxE1:= fverarq('ntx') //esa função me traz um nome de arquivo q/ainda não existe.
index on dtos(re_datent) to &NtxE1 for ;
re_datent >= w_perini .and. re_datent <= w_perfin .and. re_icmipi == 'ICMS'
//---gerando indice parcial do RE.
sele lfre
NtxE1:= fverarq('ntx') //esa função me traz um nome de arquivo q/ainda não existe.
index on dtos(re_datent) to &NtxE1 for ;
re_datent >= w_perini .and. re_datent <= w_perfin .and. re_icmipi == 'ICMS'
-
Dudu_XBase
- Membro Master

- Mensagens: 1071
- Registrado em: 25 Ago 2003 16:55
Código: Selecionar todos
index on dtos(re_datent) to &NtxE1 for ;
dtos(re_datent) >= dtos(w_perini) .and. dtos(re_datent) <= dtos(w_perfin) .and. re_icmipi == 'ICMS'
________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle
-
jorgepacheco
- Usuário Nível 1

- Mensagens: 4
- Registrado em: 08 Jun 2006 09:12
Nada feito.
Olá Dudu. Meu amigo, alterei para usar o dtos() como você postou, mas, ainda não funcionou, o índice é gerado trazendo data que não estão no escopo. Vou mudar para clipper53 e blinker7 para ver se tem alguma solução, mas, você teria alguma outra dica ? esse caso tá me endoidando.
Jorge ´o)
Jorge ´o)
AMIGO QUE AO INVES DE usar filtos reindexando arquivos, vc naum usa arquivos temporarios, principalemtne porque vc esta usando em rede entaum cada usuario pode fazer fazer a pesquisa do jeito q bem entender e a base de dados principal estara disponivel sempre. . .
1 - seleciona o arquivo para a pesquisa
2 - cria arquivo temporario
3 - copy para o arquivo temporario de acordo com a condicoes da pesquisa. . .
Select EntPro ; DbGoTop()
ArqTmp := CriaTmp()
If Empty( ArqTmp ) ; Loop ; Endif
Copy To &ArqTmp For Re_icmipi == 'ICMS' .And. DtoS(Re_DatEnt) >= DtoS(W_PerIni) .And. dtos(re_datent) <= dtos(w_perfin)
agora vc usa sua funcao para a abrir/usar seu bancos de dados
Select &ArqTmp ; DbGoTop()
a partir daqui trabalho com o arquivo &ArqTmp
**********************************
Function CriaTmp
Do While Inkey() <> 27
NomArq := [Tm] + Substr(Time(),1,2) + Substr(Time(),4,2) + Substr(Time(),7,2)
ArqD := NomArq + [.Dbf]
ArqN := NomArq + [.Ntx]
If File("&ArqD") ; Loop ; Endif
If File("&ArqN") ; Loop ; Endif
Exit
Enddo
Return(ArqT)
1 - seleciona o arquivo para a pesquisa
2 - cria arquivo temporario
3 - copy para o arquivo temporario de acordo com a condicoes da pesquisa. . .
Select EntPro ; DbGoTop()
ArqTmp := CriaTmp()
If Empty( ArqTmp ) ; Loop ; Endif
Copy To &ArqTmp For Re_icmipi == 'ICMS' .And. DtoS(Re_DatEnt) >= DtoS(W_PerIni) .And. dtos(re_datent) <= dtos(w_perfin)
agora vc usa sua funcao para a abrir/usar seu bancos de dados
Select &ArqTmp ; DbGoTop()
a partir daqui trabalho com o arquivo &ArqTmp
**********************************
Function CriaTmp
Do While Inkey() <> 27
NomArq := [Tm] + Substr(Time(),1,2) + Substr(Time(),4,2) + Substr(Time(),7,2)
ArqD := NomArq + [.Dbf]
ArqN := NomArq + [.Ntx]
If File("&ArqD") ; Loop ; Endif
If File("&ArqN") ; Loop ; Endif
Exit
Enddo
Return(ArqT)
""
-
jorgepacheco
- Usuário Nível 1

- Mensagens: 4
- Registrado em: 08 Jun 2006 09:12
Ainda tem bronca.
Olá, mudei para criar uma copia do arquivo como o exemplo acima citado. estou compilando com clipper3 e blinker7, mas, dá o seguinte erro: CONVENTIONAL MEMORY EXHAUSTED. Ora, o blinker7 já prevê isso, o micro tem memoria pra dá, e ocorre esse erro, pôxa, será que alguêm pode dá uma dica ? O RMK ficou assim:
lif1 = lif.obj lf101.obj lf101a.obj lf102.obj lf102a.obj lf102i.obj
.
.
.PRG.OBJ:
CLIPPER $* /N
lif.obj : lif.prg
help.obj : help.prg
.
.
LIF.EXE : $(lif1)
\blinker7\blinker @lif
E O lnk FICOU ASSIM:
NOBELL
BLI INC OFF
BLI OVE OPS 20
BLI OVE PAGEFRAME ON
BLI CAC XMS 50%,1024
BLI CAC EMS 50%,1024
BLI OVE UMB ON
file lif , lf101 , lf101a , lf102 , lf102a , lf102i , lf103 , lf103a , lf104 ,
.
.
LIB lib_hd,lib_tel,lib_seg, dbfcdx, _dbfcdx
@CL530MID.LNK
OUTPUT c:\lif\lif
lif1 = lif.obj lf101.obj lf101a.obj lf102.obj lf102a.obj lf102i.obj
.
.
.PRG.OBJ:
CLIPPER $* /N
lif.obj : lif.prg
help.obj : help.prg
.
.
LIF.EXE : $(lif1)
\blinker7\blinker @lif
E O lnk FICOU ASSIM:
NOBELL
BLI INC OFF
BLI OVE OPS 20
BLI OVE PAGEFRAME ON
BLI CAC XMS 50%,1024
BLI CAC EMS 50%,1024
BLI OVE UMB ON
file lif , lf101 , lf101a , lf102 , lf102a , lf102i , lf103 , lf103a , lf104 ,
.
.
LIB lib_hd,lib_tel,lib_seg, dbfcdx, _dbfcdx
@CL530MID.LNK
OUTPUT c:\lif\lif
amigao entre em contato no meu e-mail q mando exemplo de arquivos .lnk e rmk para vc...
clauberromao@oi.com.br
clauberromao@yahoo.com.br
prgsuporte@hotmail.com
clauberromao@oi.com.br
clauberromao@yahoo.com.br
prgsuporte@hotmail.com
""
