Achei a solução, com a ajuda do nobre Minduim...
Peguei a minha função de criptografia e compilei ela junto com o letodb, portanto o letodb.exe tem a função internamente, dai posso chamar ela que vai funcionar ok ! :))
F.Freire
Moderador: Moderadores
Não pode ter função nenhuma, nem variáveis nas strings enviadas. Há não ser que tenha declarado elas no servidor.
// copy remote file located on the NETIO server to virtual
// memory filesystem
hb_fsCopy( "NET:192.168.0.1:/data/test.dbf", "mem:test.dbf" )
// open DBF file copied to memory FS
use mem:test
// export it to file ont the server
COPY TO "NET:192.168.0.1:/data/result.dbf"
ainda não notei ganho de velocidade, mas vou fazer outros testes, do tipo...exe na estação e tabelas no servidor, para ver como fica e reporto aqui depois !!!
estão usando em produção normalmente ? ou ainda é arriscado ?
pode ter a mesma aplicação usando letodb e DBF Puro ? ou causaria conflito ?
It is possible to define [DATABASE] structure if you need to have a
directory, where files are opened via other RDD:
[DATABASE]
DataPath = - (mandatory option)
Driver = CDX - ( CDX/NTX )
You can define as many [DATABASE] sections, as needed.
com o letodb pode-se usar comando TIPO Sql ?
a base e os índices trafegam pela rede para o Programa no PC-terminal selecionar ou Não o registro.
FUNCTION CriaStr( _CodCria, _ArqCria, __Str, __StrI, __AStr, __Recria, __Caminho )
// _CodCria -- Codigo para pesquisa no arq. de Estrutura
// _ArqCria -- Nome do arquivo a ser criado
// __Str -- Arquivo de Estruturas dos arquivos
// __StrI -- Arquivo de Indices da estruturas
// __AStr -- Alias da Estrutura
// __Recria -- Se cria o arquivo mesmo que existir
LOCAL _StrDef, aChou, xOpErro
LOCAL _AbreS := .F., __CaminhoLeto
_StrDef := {}
__Recria := IIF( __Recria = NIL, .F., __Recria )
IF EMPTY( SELECT( __AStr ) )
// Tenta abrir arquivo de (estruturas) em modo compartilhado
IF NETUSE( __Str, (__AStr), SHARE )
DBSETINDEX( __StrI )
ELSE
MsgMenu('Arq.' + __Str + ' não pode ser aberto !!! Verifique os terminais !!!',{'OK'},,IM__ERRO,'ERRO',,,'32 ERR CAN',,,_branco_)
RETURN( FALSE )
END
_AbreS := .T.
END
(__AStr)->( DBSEEK(_CodCria) )
WHILE (__AStr)->Codigo == _CodCria
AADD( _StrDef, { ALLTRIM((__AStr)->Nome), (__AStr)->Tipo, (__AStr)->Tamanho, (__AStr)->Decimal } )
(__AStr)->( DBSKIP() )
END
IF EMPTY( _StrDef )
RETURN( FALSE )
ELSE
xOpErro = 1
IF FILE(__Caminho+_ArqCria) .AND. !__Recria
xOpErro := MsgMenu('Arq.' + __Caminho +_ArqCria + ' já existe !!! Cria novamente ???',{'&Sim','&Não'},,IM__PERGUNTA,'Atenção',,,'42 ASK',,,_branco_) = 1
END
IF xOpErro = 1
__CaminhoLeto := zLetoDB + SUBSTR(__Caminho,4,LEN(__Caminho)-3)
DBCREATE( IIF(EMPTY(zLetoDB),__Caminho,__CaminhoLeto)+_ArqCria, _StrDef )
HB_FCOMMIT()
END
END
IIF( _AbreS, (__AStr)->( DBCLOSEAREA() ), '' )
RETURN( TRUE )
Usuários vendo este fórum: Nenhum usuário registrado online e 9 visitantes