letodb e letodbf ?
Moderador: Moderadores
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
letodb e letodbf ?
Boa tarde a todos.
Fiz as alterações e esta ocorrendo algo errado que ainda não descobri.
minha pasta é:
C:\DADOS (Já uso desta forma para exatamente ficar mais facil fazer copia)
meu programa original mas que não é executado fica em
C:\DADOS \ EMPRESAX \ EXE (PASTA DO EXECUTAVEL E DO CONFIG.INI E OUTRAS PARAFERNALHAS)
o programa executável fica em cada maquina inclusive esta que é servidora por exemplo (é pq tenho uns clientes que tem dó de gastar com servidor dedicado)
fica em:
C:\EMPRESAX \ EXE \nomedoprograma.exe (este é o que eu executo o qual vai lá na pasta C:\DADOS \EMPRESAX\ AONDE TEM OS DBFs e usa.)
Problema que ocorreu.
Ao executar o programa ele criou arquivos dbf e indices vazios nesta pasta junto com o executavel.
Removi todos as configurações leto, deinstalei o servidor leto mas continuou a criar no lugar errado.
Removi a lib do executavel e ai deu certo, voltou ao DBF normal na pasta correta, mas sem LETO.
Alguem sabe qual configuração devo alterar?
Grato
Fiz as alterações e esta ocorrendo algo errado que ainda não descobri.
minha pasta é:
C:\DADOS (Já uso desta forma para exatamente ficar mais facil fazer copia)
meu programa original mas que não é executado fica em
C:\DADOS \ EMPRESAX \ EXE (PASTA DO EXECUTAVEL E DO CONFIG.INI E OUTRAS PARAFERNALHAS)
o programa executável fica em cada maquina inclusive esta que é servidora por exemplo (é pq tenho uns clientes que tem dó de gastar com servidor dedicado)
fica em:
C:\EMPRESAX \ EXE \nomedoprograma.exe (este é o que eu executo o qual vai lá na pasta C:\DADOS \EMPRESAX\ AONDE TEM OS DBFs e usa.)
Problema que ocorreu.
Ao executar o programa ele criou arquivos dbf e indices vazios nesta pasta junto com o executavel.
Removi todos as configurações leto, deinstalei o servidor leto mas continuou a criar no lugar errado.
Removi a lib do executavel e ai deu certo, voltou ao DBF normal na pasta correta, mas sem LETO.
Alguem sabe qual configuração devo alterar?
Grato
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
letodb e letodbf ?
Olá!
Cade seu letodb.ini ?
A pasta é c:\dados ?
O resto(subdir) não importa.
Cadê seu fonte .prg ativando o leto e o comando use/dbcreate tá como ? o file ? ou leto_file ?
Não precisa postar tudo não só a parte que interessa.
Saudações,
Itamar M. Lins Jr.
Normal!!!rsrsr acontece nas melhores famílias. Covid? Aqui eu peguei uma tal de dengue...Ao executar o programa ele criou arquivos dbf e indices vazios nesta pasta junto com o executavel.
Cade seu letodb.ini ?
A pasta é c:\dados ?
O resto(subdir) não importa.
Cadê seu fonte .prg ativando o leto e o comando use/dbcreate tá como ? o file ? ou leto_file ?
Não precisa postar tudo não só a parte que interessa.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
letodb e letodbf ?
Bom dia Itamar.
Montei assim.
C:\DADOS\EMPRESAX\ (Pasta da empresa onde esta o banco de dados no servidor), caso seja a mesma máquina tem as duas pasta
\EXE\ (Pasta onde fica o executavel atualizado e outras informações)
\FILIAL1\ATIVO\ (Pasta banco de dados da filial1) dbfs e idxs
\FILIAL2\ATIVO\ (Pasta banco de dados da filial2) dbfs e idxs
Pasta do executável
C:\EMPRESAX\EXE\ (Pasta do executável) que fica em cada terminal aqui não tem DBF e nem IDX
Leto, coloquei ele na pasta C:\DADOS e instalei ele e esta em execução no SERVIÇOS do windows.
Leto.ini
FONTE:
Mesmo com o codigo acima desativado mas a LIB compilada no programa, ocorre a criação dos DBFs e IDXs na pasta do executável.
Não entendi pq esta criando no lugar errado.
Montei assim.
C:\DADOS\EMPRESAX\ (Pasta da empresa onde esta o banco de dados no servidor), caso seja a mesma máquina tem as duas pasta
\EXE\ (Pasta onde fica o executavel atualizado e outras informações)
\FILIAL1\ATIVO\ (Pasta banco de dados da filial1) dbfs e idxs
\FILIAL2\ATIVO\ (Pasta banco de dados da filial2) dbfs e idxs
Pasta do executável
C:\EMPRESAX\EXE\ (Pasta do executável) que fica em cada terminal aqui não tem DBF e nem IDX
Leto, coloquei ele na pasta C:\DADOS e instalei ele e esta em execução no SERVIÇOS do windows.
Leto.ini
Código: Selecionar todos
;Server = 192.168.1.11 (ip da minha maquina, onde estou testando)
;IP = 192.168.1.11
Port = 2812
DataPath = c:/dados/
;LogPath = /tmp
Default_Driver = IDX
;Lock_Scheme = 6
Memo_Type = FPT
Share_Tables = 1
No_Save_WA = 1
Lower_Path = 0
EnableFileFunc = 1
EnableAnyExt = 1
Allow_UDF = 1
Pass_for_Login = 0
Pass_for_Manage = 0
Pass_for_Data = 0
Pass_File = leto_users
Cache_Records = 21
;Max_Vars_Number = 1000
;Max_Var_Size = 67108864
;Tables_Max = 999
;Users_Max = 99
Debug = 1
Optimize = 1
;AutOrder = 0
;ForceOpt = 0
;TimeOut = 360
;Zombie_Check = 0
;Server_User = advantage
;Server_UID = 1000
;Server_GID = 4
;BC_Services = letodb;
;BC_Interface = eth2
;BC_Port = 2812
;
;SMB_SERVER = 1
DataBase = C:/DADOS/
Backup = /tmp/backup
Mask = *.dbf,*.dbt,*.idx
Lock = 1
Seconds = 30
Wait = 1
ArcCmd = tar -cvzf /tmp/backup/leto.tar.gz /tmp/backup/*
Código: Selecionar todos
#include "rddleto.ch" // defines do RDD
#include "dbinfo.ch" // Header file for the RDD API Index OrderInfo and DBInfo support
#include "leto_std.ch" // traduz os comandos para o LETO
#include "letofile.ch" // traduz as funções para o LETO
REQUEST LETO
REQUEST RDDLETO
REQUEST RDDInfo
Request DBFCDX
//quando forço para ele testar a conexão da erro de envio
nConect := leto_Connect( "//"+oDB_Server +":"+ oDB_Porta +"/")
If nConect == -1
nRes := leto_Connect_Err()
//showmessage(,,"Leto",0)
If nRes == LETO_ERR_LOGIN
ShowMessage(,, "Falha ao Logar",5 )
ElseIf nRes == LETO_ERR_RECV
ShowMessage(,, "Erro ao conectar",5 )
ElseIf nRes == LETO_ERR_SEND (ocorre este erro)
ShowMessage(,, "Erro de envio",5 )
Else
ShowMessage(,, "Nao conectado ao servidor" ,5)
EndIf
Return .F.
Else
Showmessage(,,"Conectado ao servidor.",0)
EndIf
Não entendi pq esta criando no lugar errado.
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
letodb e letodbf ?
Olá!
Sobre o LetoDb.ini
O ponto e virgula ";" Anula o comando diz que é um comentário tipo // ou && do Harbour/Clipper.
Quem vai ativar(Ligar nosso .exe) o LetoDb quando é executado é:
RddSetDefault("LETO")
Se NÃO tem essa TROCA via RddSetDefault() para o LETO vc precisa indicar no USE ou DbUseArea():
DbUseArea(.T.,"LETO",cDB,cAlias,.T.,.F.,'PTISO') //Usando Leto com DBFCDX
DbUseArea(.T.,"DBFCDX",cDB,cAlias,.T.,.F.,'PTISO') //Usando DBFCDX SEM LETO (local ou pasta compartilhada) -> mesmo com RDDSETDEFAULT("LETO")
Entendeu essa parte ?
Para verificar os DBF's via LETO, use IF LETO_FILE("clientes.dbf") //Assim vai usar o Leto via TCP.
A função file("clientes.dbf") vai depender se está no "C:" ou mapeado "y:\dados\pasta\"
A função file() é uma coisa leto_file() é outra.
Atenção o LetoDb está MONITORANDO a pasta "c:\dados" e tudo que tem dentro dela.
Itamar M. Lins Jr.
Sobre o LetoDb.ini
O ponto e virgula ";" Anula o comando diz que é um comentário tipo // ou && do Harbour/Clipper.
Quem vai ativar(Ligar nosso .exe) o LetoDb quando é executado é:
Quem vai fazer a TROCA se é local ou não quando usamos o comando USE ou DbUseArea() é:nConect := leto_Connect( "//"+oDB_Server +":"+ oDB_Porta +"/")
RddSetDefault("LETO")
Se NÃO tem essa TROCA via RddSetDefault() para o LETO vc precisa indicar no USE ou DbUseArea():
DbUseArea(.T.,"LETO",cDB,cAlias,.T.,.F.,'PTISO') //Usando Leto com DBFCDX
DbUseArea(.T.,"DBFCDX",cDB,cAlias,.T.,.F.,'PTISO') //Usando DBFCDX SEM LETO (local ou pasta compartilhada) -> mesmo com RDDSETDEFAULT("LETO")
Entendeu essa parte ?
Para verificar os DBF's via LETO, use IF LETO_FILE("clientes.dbf") //Assim vai usar o Leto via TCP.
A função file("clientes.dbf") vai depender se está no "C:" ou mapeado "y:\dados\pasta\"
A função file() é uma coisa leto_file() é outra.
Atenção o LetoDb está MONITORANDO a pasta "c:\dados" e tudo que tem dentro dela.
Troque por essa:DataPath = c:/dados/
Saudações,DataPath = c:\dados
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
letodb e letodbf ?
Olá!
É o quê mesmo ? CDX sem usar TAG ? De toda forma não existe IDX(RDD)(que eu saiba) troque por CDX
No meu aqui "letodb.ini" eu renomeio o padrão e uso esse:
Obs! é letodb.ini não é leto.ini Para outras pessoas não confundirem.
Saudações,
Itamar M. Lins Jr.
IDX ?Default_Driver = IDX
É o quê mesmo ? CDX sem usar TAG ? De toda forma não existe IDX(RDD)(que eu saiba) troque por CDX
No meu aqui "letodb.ini" eu renomeio o padrão e uso esse:
Código: Selecionar todos
Port = 2812
DEFAULT_DRIVER = CDX
DATAPATH = c:\database
ENABLEFILEFUNC = 1
CRYPT_TRAFFIC = 0
PASS_FOR_LOGIN = 0
PASS_FOR_MANAGE = 0
PASS_FOR_DATA = 0
Share_Tables = 0
Cache_Records = 60
No_Save_WA = 1
[DATABASE]
DataPath = c:\database
Driver = CDX
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
letodb e letodbf ?
Boa tarde.
Quanto a:
Default_Driver = IDX (MACACADA MINHA, não prestei atenção no comando DRIVER e não indices, o drive que uso é DBFCDX mas utilizo sem TAG, ficando IDX.
devido ao antigo sistema NTX indice para utilizar dbsetorder(x) nos relatorios, tenho que mudar muitos para usar TAG.
Quanto a: LETOdb.INI
Usar somente do seu exemplo já basta?
Port = 2812
DEFAULT_DRIVER = CDX
DATAPATH = c:\database (só trocaria para minha pasta C:\DADOS)
ENABLEFILEFUNC = 1
CRYPT_TRAFFIC = 0
PASS_FOR_LOGIN = 0
PASS_FOR_MANAGE = 0
PASS_FOR_DATA = 0
Share_Tables = 0
Cache_Records = 60
No_Save_WA = 1
[DATABASE]
DataPath = c:\database (só trocaria para minha pasta C:\DADOS)
Driver = CDX
//forma como abro os arquivos
Aproveitando o ensejo, para poder usar tanto LETO como DBFCDX local na maquina cliente daria certo?
Porque?, penso em deixar os temporários ainda na maquina do cliente em c:\empresa\temp
Quanto a:
Default_Driver = IDX (MACACADA MINHA, não prestei atenção no comando DRIVER e não indices, o drive que uso é DBFCDX mas utilizo sem TAG, ficando IDX.
devido ao antigo sistema NTX indice para utilizar dbsetorder(x) nos relatorios, tenho que mudar muitos para usar TAG.
Quanto a: LETOdb.INI
Usar somente do seu exemplo já basta?
Port = 2812
DEFAULT_DRIVER = CDX
DATAPATH = c:\database (só trocaria para minha pasta C:\DADOS)
ENABLEFILEFUNC = 1
CRYPT_TRAFFIC = 0
PASS_FOR_LOGIN = 0
PASS_FOR_MANAGE = 0
PASS_FOR_DATA = 0
Share_Tables = 0
Cache_Records = 60
No_Save_WA = 1
[DATABASE]
DataPath = c:\database (só trocaria para minha pasta C:\DADOS)
Driver = CDX
//forma como abro os arquivos
Código: Selecionar todos
Function NetUseFile(cArquivo,aIndice,lNew,cAlias,cDriver,lShared,nRetry,nOrc,oExt,nDir,nLoja)
Local lForever,lRet:=.T.
cDriver :=If(cDriver=Nil,oRDD,cDriver) //informo ou pega o configurado no config.ini meu oRDD
lShared :=If(lShared=Nil,.T.,lShared) //bloquea ou nao
nRetry :=If(nRetry =Nil,10,nRetry)
lNew :=If(lNew =Nil,.T.,lNew)
oExt :=If(oExt =Nil,"DBF",oExt)
nDir :=If(nDir =Nil,wDir,nDir)
nLoja :=If(nLoja =Nil,If(wFilial=Nil,"0001",wFilial),nLoja)
lForever:=(nRetry=0)
If wNetUse=.T.
If MyFile(nDir+cArquivo+"."+oExt) //myfile procura se existe o arquivo
ShowWaitProc()
DbUseArea(lNew,cDriver,nDir+cArquivo+"."+oExt,cAlias,lShared)
...restante do codigo
....
Código: Selecionar todos
//funcoes de ajuda leto e dbfcdx
Function MyDirectory(a)
If oVIA_RDD=="LETO"
Return LETO_Directory(a)
Else
Return Directory(a)
EndIf
FuncTion MyFile(a)
If oVIA_RDD=="LETO"
Return LETO_FILE(a) //procura
Else
Return hb_FileExists(a) //File(a)
EndIf
FuncTion MyMakeDir(a)
If oVIA_RDD=="LETO"
Return .F. //LETO_FILE(a) //procura
Else
Return MakeDir(a) //cria a pasta
EndIf
Procedure MyFRename(a,b)
If oVIA_RDD=="LETO"
LETO_FRename(a,b) //renomear
Else
FRename(a,b) //renomear
If FError() <> 0
Return .F.
EndIf
EndIf
Return .T.
Procedure MyFErase(a)
If oVIA_RDD=="LETO"
LETO_FErase(a) //apaga
ElseIf oVIA_RDD=="NETIO"
dbDrop(a)
Else
FErase(a) //apaga
EndIf
Return .T.
Porque?, penso em deixar os temporários ainda na maquina do cliente em c:\empresa\temp
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
letodb e letodbf ?
Olá!
Basta só isso ai.
Caso vc use o padrão dos demais.
Aqui:
If oVIA_RDD=="LETO"
Return .F. //LETO_FILE(a) //procura
Else
Return MakeDir(a) //cria a pasta
EndIf
Use:
Leto_DirMake( cPath ) ==> -1 if failed
Creates a directory at the server. [ renamed, formerly: Leto_MakeDir ]
Aqui:
Para fError()
Use:
Leto_FError( [ lAskServer ] ) ==> nError
Returns an error code set by ( some, not for all ) file functions at client.
NEW: with optional <lAskServer> set to TRUE ( .T. ) a query is send to the server.
DbDrop() funciona com LetoDbf()
Vc tá usando o LetoDbf do Elch, correto ?
Preciso ver o conteúdo do nDir
Saudações,
Itamar M. Lins Jr.
SimUsar somente do seu exemplo já basta?
Basta só isso ai.
Caso vc use o padrão dos demais.
Veja! Se eu entendi direito com CDX não muda, pode usar dbSetOrder(x), CDX só faz melhorar vai colocar tudo no BAG CDX.devido ao antigo sistema NTX indice para utilizar dbsetorder(x) nos relatorios, tenho que mudar muitos para usar TAG.
Aqui:
If oVIA_RDD=="LETO"
Return .F. //LETO_FILE(a) //procura
Else
Return MakeDir(a) //cria a pasta
EndIf
Use:
Leto_DirMake( cPath ) ==> -1 if failed
Creates a directory at the server. [ renamed, formerly: Leto_MakeDir ]
Aqui:
Para fError()
Use:
Leto_FError( [ lAskServer ] ) ==> nError
Returns an error code set by ( some, not for all ) file functions at client.
NEW: with optional <lAskServer> set to TRUE ( .T. ) a query is send to the server.
DbDrop() funciona com LetoDbf()
Vc tá usando o LetoDbf do Elch, correto ?
Preciso ver o conteúdo do nDir
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
letodb e letodbf ?
Olá!
Aqui:
Tá passando o tal nDIR no parametro -> (a) ? -> DbUseArea(lNew,cDriver,nDir+cArquivo+"."+oExt,cAlias,lShared)
Saudações,
Itamar M. Lins Jr.
Aqui:
Código: Selecionar todos
FuncTion MyFile(a)
If oVIA_RDD=="LETO"
Return LETO_FILE(a) //procura
Else
Return hb_FileExists(a) //File(a)
EndIf
Deve ser, por isso que sem leto deu erro ?Removi todos as configurações leto, deinstalei o servidor leto mas continuou a criar no lugar errado.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
letodb e letodbf ?
Olá!
Ou uso na memória.
Tudo que vc poder diminuir de tráfego na REDE melhorará a performance do sistema.
Copiando arquivo DBF pela rede do servidor para estação é fluxo desnecessário. Até localmente (Salvando no hd) abrindo, fechando...
Meus relatórios a maioria tem o tal Gauge ou Barra de Progresso.
Saudações,
Itamar M. Lins Jr.
Sim.Aproveitando o ensejo, para poder usar tanto LETO como DBFCDX local na maquina cliente daria certo?
Eu uso TEMPORARY nos indices para isso.Porque?, penso em deixar os temporários ainda na maquina do cliente em c:\empresa\temp
Ou uso na memória.
Código: Selecionar todos
...
If Select('pa') > 0
FechaDb('pa')
dbDrop("mem:"+cArqParcelas,,"DBFCDX")
EndIf
...
DbCreate("mem:"+cArqParcelas,aDbStrut,'DBFCDX',.T.,"pa")
Copiando arquivo DBF pela rede do servidor para estação é fluxo desnecessário. Até localmente (Salvando no hd) abrindo, fechando...
Código: Selecionar todos
Index on &OrdBy Tag re100 for &cQuery temporary eval {||oBar:Step(),.T.}Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
letodb e letodbf ?
Bom dia.
Sobre:
Veja! Se eu entendi direito com CDX não muda, pode usar dbSetOrder(x), CDX só faz melhorar vai colocar tudo no BAG CDX
R: É porque nos relatórios eu chamo apenas o indice necessário, e em alguma movimentação quando pesquiso alguma coisa, utilizo abrir apenas o indice que necessito, é aonde tenho que mudar tudo no sistema primeiro para poder usar TAG no CDX.
Sobre:
Vc tá usando o LetoDbf do Elch, correto ?
R: Sim, pelas informações é o mais completo.
A uns anos atrás eu havia feito um test com LETODB o antigo e não gostei dele, ficou lento demais, por isto abandonei.
Ontem cedo fiz uns teste e consegui a conexão com o LETODBF mas ainda continuou criando os dbfs no lugar errado.
Vou analisar tudo que vc me passou para fazer novas alterações e testar novamente.
grato
Sobre:
Veja! Se eu entendi direito com CDX não muda, pode usar dbSetOrder(x), CDX só faz melhorar vai colocar tudo no BAG CDX
R: É porque nos relatórios eu chamo apenas o indice necessário, e em alguma movimentação quando pesquiso alguma coisa, utilizo abrir apenas o indice que necessito, é aonde tenho que mudar tudo no sistema primeiro para poder usar TAG no CDX.
Sobre:
Vc tá usando o LetoDbf do Elch, correto ?
R: Sim, pelas informações é o mais completo.
A uns anos atrás eu havia feito um test com LETODB o antigo e não gostei dele, ficou lento demais, por isto abandonei.
Ontem cedo fiz uns teste e consegui a conexão com o LETODBF mas ainda continuou criando os dbfs no lugar errado.
Vou analisar tudo que vc me passou para fazer novas alterações e testar novamente.
grato
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
letodb e letodbf ?
Boa tarde Itamar.
Hoje acabei não vendo praticamente nada, fiz outras alterações no sistema necessárias, mas agora a tardinha fui dar mais uma mexidinha e resolvi fazer por partes.
me alegrei que descobri o que esta fazendo criar os dbfs e idx na pasta aonde esta o executável em execução.
Este camarada abaix
//#include "letofile.ch" // traduz as funções para o LETO (não sei pra que serve, como tinha no exemplo no site coloquei e me fe...rrei (rsrsrs)
Estes outros abaixo da pra ficar sem problemas
#include "rddleto.ch" // defines do RDD
#include "dbinfo.ch" // Header file for the RDD API Index OrderInfo and DBInfo support
#include "leto_std.ch" // traduz os comandos para o LETO
Só testei esta parte, não chamei o LETO para ver se da conexão novamente, antes estava fazendo conexão só criava os dbfs vazios no lugar errado.
Agora vou mexer mais um pouquinho por partes.
Valeu
Hoje acabei não vendo praticamente nada, fiz outras alterações no sistema necessárias, mas agora a tardinha fui dar mais uma mexidinha e resolvi fazer por partes.
me alegrei que descobri o que esta fazendo criar os dbfs e idx na pasta aonde esta o executável em execução.
Este camarada abaix
//#include "letofile.ch" // traduz as funções para o LETO (não sei pra que serve, como tinha no exemplo no site coloquei e me fe...rrei (rsrsrs)
Estes outros abaixo da pra ficar sem problemas
#include "rddleto.ch" // defines do RDD
#include "dbinfo.ch" // Header file for the RDD API Index OrderInfo and DBInfo support
#include "leto_std.ch" // traduz os comandos para o LETO
Só testei esta parte, não chamei o LETO para ver se da conexão novamente, antes estava fazendo conexão só criava os dbfs vazios no lugar errado.
Agora vou mexer mais um pouquinho por partes.
Valeu
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
letodb e letodbf ?
Boa tarde.
Enrosquei em outro processo com o LETO.
Assim que eu uso com DBFCDX o relacionamento de campos em outros DBFs.
DbSetRelation(aArquivo,{|| &aRelation. },aRelation)
Como que é feito com LETO, porque esta ocorrendo erro, se estiver correto desta forma, vou ter que ver o porque do erro.
Estou tendo que alterar o sistema todo para trabalhar desta forma
Somente DBFCDX e somente LETO.
Talvez LETO e DBFCDX em temporários no servidor.
grato
Enrosquei em outro processo com o LETO.
Assim que eu uso com DBFCDX o relacionamento de campos em outros DBFs.
DbSetRelation(aArquivo,{|| &aRelation. },aRelation)
Como que é feito com LETO, porque esta ocorrendo erro, se estiver correto desta forma, vou ter que ver o porque do erro.
Estou tendo que alterar o sistema todo para trabalhar desta forma
Somente DBFCDX e somente LETO.
Talvez LETO e DBFCDX em temporários no servidor.
grato
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
letodb e letodbf ?
Olá!
O que tem nesse aRelation ? é um ARRAY ? vc usa &aRelation... ? Tá certo isso ?
Saudações,
Itamar M. Lins Jr.
Precisa REVELAR o tal aRelation antesDbSetRelation(aArquivo,{|| &aRelation. },aRelation)
O que tem nesse aRelation ? é um ARRAY ? vc usa &aRelation... ? Tá certo isso ?
Código: Selecionar todos
cFunc:="DbSetRelation(aArquivo,{||"+ &aRelation +" },aRelation)"
&cFuncItamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
letodb e letodbf ?
Olá!
Em um único RELATION que uso é esse aqui:
No ppo fica assim:
Funciona normal, veja que não tem VARIÁVEIS.
Saudações,
Itamar M. Lins Jr.
Em um único RELATION que uso é esse aqui:
Código: Selecionar todos
Set relation to cod_fornec into 'fo' Código: Selecionar todos
dbSetRelation( "fo", {|| cod_fornec}, "cod_fornec", .F. )Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
letodb e letodbf ?
Bom dia
Então, funciona bem porque eu criei funções para abertura de arquivos e relacionamentos.
Exemplo como eu uso.
Abro os arquivos
NetUseFile("CEST0150",{"CEST0150"},.T.,,,,,.T.) ///cadastro de CST
NetUseFile("CEST0300",{"CEST0300","CEST0301","CEST0302","CEST0303","CEST0304"},.T.,,,,,.T.) //CADASTRO DE MERCADORIAS
na sequencia relaciono
NetRelFile("CEST0150","CST")// relaciono com o cest0150 da cst através do campo que existe no cest0300 CST para mostrar o nome da CST.
Desta forma acima não preciso escrever desta forma abaixo
dbSetRelation("CEST0150", {|| CEST0150->CST},"CEST0150->CST")
e assim vai para outros arquivos.
em DBFCDX funciona a anos assim.
DbSetRelation(aArquivo,{|| &aRelation. },aRelation)
eu aprendi a usar funções ao invés de comandos em quase todos os modulos do sistema
dbSetRelation("CEST0150", {|| CEST0150->CST},"CEST0150->CST") isto
Grato
Então, funciona bem porque eu criei funções para abertura de arquivos e relacionamentos.
Exemplo como eu uso.
Abro os arquivos
NetUseFile("CEST0150",{"CEST0150"},.T.,,,,,.T.) ///cadastro de CST
NetUseFile("CEST0300",{"CEST0300","CEST0301","CEST0302","CEST0303","CEST0304"},.T.,,,,,.T.) //CADASTRO DE MERCADORIAS
na sequencia relaciono
NetRelFile("CEST0150","CST")// relaciono com o cest0150 da cst através do campo que existe no cest0300 CST para mostrar o nome da CST.
Desta forma acima não preciso escrever desta forma abaixo
dbSetRelation("CEST0150", {|| CEST0150->CST},"CEST0150->CST")
e assim vai para outros arquivos.
em DBFCDX funciona a anos assim.
DbSetRelation(aArquivo,{|| &aRelation. },aRelation)
Código: Selecionar todos
USE Employee NEW
USE Department NEW INDEX Dept
SELECT Employee
dbSetRelation("Department", {|| Employee->Dept},"Employee->Dept")
LIST Employee->Name, Department->Name
dbSetRelation("CEST0150", {|| CEST0150->CST},"CEST0150->CST") isto
Grato
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)