Vc esta setando rdd LETO corretamente??
Janio
Moderador: Moderadores



Nao entendi esta parte! Vc entra no sistema e ja constar q essa estação ja estava conectada vc mata o sistema e pede pra entrar novamente?se a maquina da uma travadinha na placa de rede, cabo, etc... as vezes fica travado os arquivos no servidor... mas dai resolvi, da seguinte forma, depois de conectar ao leto, verifico se aquele ip não esta conectado, se estiver, mato as conexões e digo para o usuário entrar novamente do sistema

Código: Selecionar todos
// Conexao ao servidor de dados LETODB
IF !EMPTY(zLetoDB)
xLeto := LETO_CONNECT(zLetoDB) // efetuo a conexão ao leto
IF xLeto == -1
MsgMenu('Não conectado ao servidor: '+zLetoDB,{'OK'},,IM__ERRO,'ERRO',,,'32 ERR CAN',,,_branco_)
RELEASE WINDOW Principal
END
// Verifica se ja esta conectado no letodb
xiplocal := GetIp() // função que retorna o ip local
xipcnx := leto_MgGetUsers() // retorna matriz com informações das conexões (1-sequencia / 2-ip / 3-host / 4-exe que gerou a conexao / 5 - timeout)
IF LEN(xipcnx) > 1 // se houver mais de 1 usuario
nCntCnx := 0
FOR nCnt = 1 TO LEN(xipcnx)
IF xipcnx[nCnt,2] == xiplocal .AND. UPPER(xipcnx[nCnt,4]) == 'SAGRIO.EXE' // se existir alguma conexão com o iplocal e no meu sistema, incrementa
nCntCnx++
END
NEXT
IF nCntCnx > 1 // se tem mais de 1 sistema conectado
FOR nCnt = 1 TO LEN(xipcnx)
IF xipcnx[nCnt,2] == xiplocal .AND. UPPER(xipcnx[nCnt,4]) == 'SAGRIO.EXE' // mato a conexão
leto_MgKill( xipcnx[nCnt,1] )
END
NEXT
MsgMenu('Conexão anterior não finalizada corretamente !!!'+SALTO_LINHA+SALTO_LINHA+'Entre novamente no sistema...',{'OK'},,IM__ERRO,'ERRO',,,'32 ERR CAN',,,_branco_)
RELEASE WINDOW Principal
END
END
END
****************
FUNCTION GetIp()
****************
LOCAL aHosts
LOCAL cEstacao := NETNAME(.F.)
HB_InetInit()
aHosts := HB_InetGetHosts( cEstacao )
IF aHosts == NIL
aHosts := HB_InetGetAlias( cEstacao )
END
IF EMPTY(aHosts)
aHosts := HB_InetGetAlias( cEstacao )
END
HB_InetCleanup()
RETURN aHosts[1]


Código: Selecionar todos
det->( dbSetFilter( { || Field->dvfecvou >= diario.desde.value .and. Field->dvfecvou <= diario.hasta.value }, 'Field->dvfecvou >= diario.desde.value .and. Field->dvfecvou <= diario.hasta.value' ) )
Código: Selecionar todos
cOrdBy := ??? //
cQuery := "Field->dvfecvou >= diario.desde.value .and. Field->dvfecvou <= diario.hasta.value"
Index on &cOrdBy TAG MyTmpTagX FOR &cQuery temporary additive



Código: Selecionar todos
c:\DataBase\EmpresaX
c:\DataBase\EmpresaY
[code]
No letodb.ini configurar a pasta [DATAPATH ]= c:\DataBase\
Porque ele irá enxergar as subpastas.
Ou usar o LetoDb.exe em diretórios diferentes não instalando como serviço!
[code]c:\EmpresaX\Letodb.exe
c:\EmpresaY\Letodb.exe