Índices - Arquivos Temporários
Moderador: Moderadores
-
Mário Isa
- Usuário Nível 4

- Mensagens: 907
- Registrado em: 07 Jul 2004 13:54
- Localização: Ilha Solteira-sp
Índices - Arquivos Temporários
Alow!
Quando executo o comando INDEX ON
Ele está criando um arquivo .TMP lá numa pasta do windows vejam.
Este erro pode ter sido causado por causa que eu estou utilizando um software que inibe o acesso a algumas pastas do windows, para me proteger de vírus
Error DBFNTX/1061 Write error: C:\DOCUME~1\usuario1\CONFIG~1\Temp\xhtD7.tmp
Called from (b)ERRORSYS(72)
Called from ORDCREATE(0)
Called from INDEXON(9489)
Called from FAZ_NTX2(374)
Called from ABRE(213)
Called from USEI(292)
Called from TELAEROB(9)
Tem como "falar" pro programa que os arquivos .TMP (TEMP) / tem que ficar numa certa pasta de minha preferência ?
Abraços
Quando executo o comando INDEX ON
Ele está criando um arquivo .TMP lá numa pasta do windows vejam.
Este erro pode ter sido causado por causa que eu estou utilizando um software que inibe o acesso a algumas pastas do windows, para me proteger de vírus
Error DBFNTX/1061 Write error: C:\DOCUME~1\usuario1\CONFIG~1\Temp\xhtD7.tmp
Called from (b)ERRORSYS(72)
Called from ORDCREATE(0)
Called from INDEXON(9489)
Called from FAZ_NTX2(374)
Called from ABRE(213)
Called from USEI(292)
Called from TELAEROB(9)
Tem como "falar" pro programa que os arquivos .TMP (TEMP) / tem que ficar numa certa pasta de minha preferência ?
Abraços
-
Mário Isa
- Usuário Nível 4

- Mensagens: 907
- Registrado em: 07 Jul 2004 13:54
- Localização: Ilha Solteira-sp
Re: Índices - Arquivos Temporários
Olhando o manual descobri que / se eu inserir a cláusula / TEMPORARY / no comando INDEX ON
diz, traduzido para o português:
Se esta opção for especificada, um índice temporário é criado, que é destruído automaticamente quando o índice está fechado. O índice temporário pode ser criada somente na memória ou em um arquivo temporário. Esta reside na responsabilidade do RDD utilizado para criação de índice.
Sim / tudo bem / se precisa criar um .TEMP / tudo bem / mas eu gostaria de especificar a pasta onde ele é criado / tem como ?
Mário
diz, traduzido para o português:
Se esta opção for especificada, um índice temporário é criado, que é destruído automaticamente quando o índice está fechado. O índice temporário pode ser criada somente na memória ou em um arquivo temporário. Esta reside na responsabilidade do RDD utilizado para criação de índice.
Sim / tudo bem / se precisa criar um .TEMP / tudo bem / mas eu gostaria de especificar a pasta onde ele é criado / tem como ?
Mário
-
Mário Isa
- Usuário Nível 4

- Mensagens: 907
- Registrado em: 07 Jul 2004 13:54
- Localização: Ilha Solteira-sp
Re: Índices - Arquivos Temporários
Acho que eu já descobri
Abrindo o AVISO DO MS-DOS e digitando SET <enter>
vemos / entre outras variáveis de ambiente:
TEMP=C:\DOCUME~1\note1\CONFIG~1\Temp
TMP=C:\DOCUME~1\note1\CONFIG~1\Temp
pelo jeito é isso:
Eu devo definir / ainda no aviso do DOS / digamos:
set TEMP=D:\MINHAPASTA
e
set TMP=D:\MINHAPASTA
Mas só tem jeito lá pelo DOS né ?
Teria algum comando do XHARBOUR para definir ?
É que eu quero "fugir" de ter que mexer nas config's do DOS. Porque se não teria que ir em cada cliente .
(A)
Abrindo o AVISO DO MS-DOS e digitando SET <enter>
vemos / entre outras variáveis de ambiente:
TEMP=C:\DOCUME~1\note1\CONFIG~1\Temp
TMP=C:\DOCUME~1\note1\CONFIG~1\Temp
pelo jeito é isso:
Eu devo definir / ainda no aviso do DOS / digamos:
set TEMP=D:\MINHAPASTA
e
set TMP=D:\MINHAPASTA
Mas só tem jeito lá pelo DOS né ?
Teria algum comando do XHARBOUR para definir ?
É que eu quero "fugir" de ter que mexer nas config's do DOS. Porque se não teria que ir em cada cliente .
(A)
-
Hasse
- Usuário Nível 4

- Mensagens: 820
- Registrado em: 19 Out 2004 10:30
- Localização: Jaraguá do Sul - SC
Re: Índices - Arquivos Temporários
Olá Mario.
Bem eu tentaria e usaria uma das 5 formas abaixo:
1-Setar as variáveis TEMP e TMP via Painel de Controle -> Sistema -> Configurações avançadas do Sistema -> Variáveis de ambiente -> Variáveis de usuário. Alí você tem TEMP=%USERPROFILE%\AppData\Local\Temp. Altere para a pasta desejada.
2-Criar um BAT que seria disparado antes do executável MeuPrograma.exe. Alí as variáveis seriam setadas:
set TEMP=D:\MINHAPASTA
set TMP=D:\MINHAPASTA
MeuPrograma.exe
3-No Autoxec.nt que está na pasta System32 incluir os set's desejados.
set TEMP=D:\MINHAPASTA
set TMP=D:\MINHAPASTA
4-De dentro do PRG setar as variáveis, usando o comando RUN ou !:
RUN set TEMP=D:\MINHAPASTA
RUN set TMP=D:\MINHAPASTA
5-De dentro do PRG setar as variáveis, usando uma função API do Windows:
winexec("set TEMP=D:\MINHAPASTA")
winexec("set TMP=D:\MINHAPASTA")
Certamente uma destas formas vai satisfazer as tuas necessidades.
Bem eu tentaria e usaria uma das 5 formas abaixo:
1-Setar as variáveis TEMP e TMP via Painel de Controle -> Sistema -> Configurações avançadas do Sistema -> Variáveis de ambiente -> Variáveis de usuário. Alí você tem TEMP=%USERPROFILE%\AppData\Local\Temp. Altere para a pasta desejada.
2-Criar um BAT que seria disparado antes do executável MeuPrograma.exe. Alí as variáveis seriam setadas:
set TEMP=D:\MINHAPASTA
set TMP=D:\MINHAPASTA
MeuPrograma.exe
3-No Autoxec.nt que está na pasta System32 incluir os set's desejados.
set TEMP=D:\MINHAPASTA
set TMP=D:\MINHAPASTA
4-De dentro do PRG setar as variáveis, usando o comando RUN ou !:
RUN set TEMP=D:\MINHAPASTA
RUN set TMP=D:\MINHAPASTA
5-De dentro do PRG setar as variáveis, usando uma função API do Windows:
winexec("set TEMP=D:\MINHAPASTA")
winexec("set TMP=D:\MINHAPASTA")
Certamente uma destas formas vai satisfazer as tuas necessidades.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Re: Índices - Arquivos Temporários
Olá!
Perdoem minha ignorancia sobre [x]Harbour. Não sei como funciona o processo de linkedição nessa plataforma.
Em Clipper, quando se utilizava o Blinker (não me lembro se isso é possível também no Exospace), podia-se definir ("burn") as variáveis de ambiente no próprio script de linkedição.
Exemplo:
É uma idéia. Se for viável, o executável distribuido já conteria essa informação, sendo desnecessário alterar configurações de cada máquina.
Perdoem minha ignorancia sobre [x]Harbour. Não sei como funciona o processo de linkedição nessa plataforma.
Em Clipper, quando se utilizava o Blinker (não me lembro se isso é possível também no Exospace), podia-se definir ("burn") as variáveis de ambiente no próprio script de linkedição.
Exemplo:
Código: Selecionar todos
BLINKER EXECUTABLE CLIPPER //Dynf:8 //F:254 //TEMPPATH:'C:\WINDOWS\TEMP'[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
-
Mário Isa
- Usuário Nível 4

- Mensagens: 907
- Registrado em: 07 Jul 2004 13:54
- Localização: Ilha Solteira-sp
Re: Índices - Arquivos Temporários
mas eu tentei / e de todas as formas não deu certo / a única forma q dá certo é a primeira / pelo painel de controle / sistema /////
nem mesmo pelo autoexec.nt não dá
:-´
nem mesmo pelo autoexec.nt não dá
:-´
-
Euclides
- Usuário Nível 3

- Mensagens: 154
- Registrado em: 12 Mai 2007 14:07
- Localização: São Paulo, Capital
Re: Índices - Arquivos Temporários
Olá Mario,
no FWH, eu utilizo:
Espero que isso ajude,
Euclides
no FWH, eu utilizo:
Código: Selecionar todos
cTemp:=getenv("TEMP")+"\temp"
...
index on <expression> to &cTemp
Nota: com 32 bits, manda para C:\DOCUME~1\<usuario>\CONFIG~1\Temp
com 16 bits, manda para C:\windows\TEMP
Euclides
-
Mário Isa
- Usuário Nível 4

- Mensagens: 907
- Registrado em: 07 Jul 2004 13:54
- Localização: Ilha Solteira-sp
Índices - Arquivos Temporários
Depois de tanto tempo tive que ressuscitar esse tópico por causa dos recentes ataques de virus daqueles tipos que compactam os arquivos do computador e criptografam e ainda pedem um $$$ prá devolver .....
então pensei ...
quero proteger minha pasta (onde estão meus programas) para que ninguém, a não ser o meu programa, tenha direito de alterar tais arquivos e ninguém mais ....
Tentei pela aba segurança e ainda não obtive sucesso.
Qq coisa posto aqui
:%
então pensei ...
quero proteger minha pasta (onde estão meus programas) para que ninguém, a não ser o meu programa, tenha direito de alterar tais arquivos e ninguém mais ....
Tentei pela aba segurança e ainda não obtive sucesso.
Qq coisa posto aqui
:%
Índices - Arquivos Temporários
Mário
Para definir uma variável de ambiente em tempo de execução:
SetEnvironmentVariable( "TEMP", "D:\TMP" )
Para definir uma variável de ambiente em tempo de execução:
SetEnvironmentVariable( "TEMP", "D:\TMP" )
Código: Selecionar todos
// -----------------------
// AUTOR: Alexandre Simäes
// 10-2012
// Miscellaneous functions
// -----------------------
//_WINMISC.CPP
//------------------------
#define _WIN32_WINNT 0x0400
#include <windows.h>
#include <shlobj.h>
#include <math.h>
#include "hbapi.h"
#include "hbvm.h"
#include "hbstack.h"
#include "hbapiitm.h"
#include "time.h"
#include "hbapifs.h"
#include <shellapi.h>
#include <shlwapi.h>
#include <lmcons.h>
#include <commctrl.h>
#ifndef LONG_PTR
#define LONG_PTR LONG
#endif
//-----------------------------------------------------------------------------
// WINBASEAPI LPSTR WINAPI GetEnvironmentStrings( VOID );
// note: returns the actual pointer
HB_FUNC( GETENVIRONMENTSTRINGS )
{
hb_retnl( (LONG) GetEnvironmentStrings( ) ) ;
}
//-----------------------------------------------------------------------------
// WINBASEAPI LPSTR WINAPI GetEnvironmentStrings( VOID );
HB_FUNC( FREEENVIRONMENTSTRINGS )
{
hb_retl( (LONG) FreeEnvironmentStrings( (LPTSTR) hb_parnl(1) ) ) ;
}
//-----------------------------------------------------------------------------
// WINBASEAPI DWORD WINAPI GetEnvironmentVariableA( IN LPCSTR lpName, OUT LPSTR lpBuffer, IN DWORD nSize );
HB_FUNC( GETENVIRONMENTVARIABLE )
{
UINT dwLen = MAX_PATH ;
char *cText = (char*) hb_xgrab( MAX_PATH+1 );
DWORD dwRet ;
dwRet = GetEnvironmentVariableA( (LPCSTR) hb_parcx( 1 ),
(LPSTR) cText ,
(DWORD) dwLen
) ;
hb_retclen( cText, dwRet );
hb_xfree( cText );
}
//-----------------------------------------------------------------------------
// WINBASEAPI BOOL WINAPI SetEnvironmentVariableA( IN LPCSTR lpName, IN LPCSTR lpValue );
HB_FUNC( SETENVIRONMENTVARIABLE )
{
hb_retl( SetEnvironmentVariableA( (LPCSTR) hb_parcx( 1 ),
(LPCSTR) hb_parcx( 2 )
) ) ;
}
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)