Uso de letodb
Moderador: Moderadores
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
Uso de letodb
Boa noite Itamar.
Então, já estou com o sistema rodando todos os módulos no LETO, fiz bastante testes de bancada, não coloquei em produção ainda em LETO, vou fazer testes de bancada com está configuração pra ver se há algum problema ou não.
Fiquei com esta dúvida não sei nem porque, mas fiz testes criando as tabelas em LETO e usando em DBFCDX e vice versa e funcionou normal, aparentemente não corrompeu nenhum índice.
Vou rodar mais uns testes pra enfim colocar em produção.
Obrigado.
Então, já estou com o sistema rodando todos os módulos no LETO, fiz bastante testes de bancada, não coloquei em produção ainda em LETO, vou fazer testes de bancada com está configuração pra ver se há algum problema ou não.
Fiquei com esta dúvida não sei nem porque, mas fiz testes criando as tabelas em LETO e usando em DBFCDX e vice versa e funcionou normal, aparentemente não corrompeu nenhum índice.
Vou rodar mais uns testes pra enfim colocar em produção.
Obrigado.
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
Uso de letodb
Boa noite a todos.
Coloquei em produção e até agora estou muito satisfeito, principalmente pela velocidade em computadores usando wireless, isto já me anima a usar on LINE o sistema.
Muito obrigado pela ajuda recebida.
Coloquei em produção e até agora estou muito satisfeito, principalmente pela velocidade em computadores usando wireless, isto já me anima a usar on LINE o sistema.
Muito obrigado pela ajuda recebida.
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
Uso de letodb
Olá!
É o quê venho explicando ao pessoal.
LetoDbf ativa novamente o uso do DBF. Tem o ADS que é pago e tem junto a sintaxe SQL. Quem sabe mais na frete venha a ter isso no LetoDbf.
Nunca tive problema de índice corrompido.
Meu sistema não tem nem a opção de INDEXAR. Nem existe isso. Quando eu preciso eu apago os CDX e reabro o sistema e o sistema recria os índices, mas só pq adicionei uma TAG a mais. Fora isso é ZERO de índice corrompido.
Saudações,
Itamar M. Lins Jr.
É o quê venho explicando ao pessoal.
LetoDbf ativa novamente o uso do DBF. Tem o ADS que é pago e tem junto a sintaxe SQL. Quem sabe mais na frete venha a ter isso no LetoDbf.
Nunca tive problema de índice corrompido.
Meu sistema não tem nem a opção de INDEXAR. Nem existe isso. Quando eu preciso eu apago os CDX e reabro o sistema e o sistema recria os índices, mas só pq adicionei uma TAG a mais. Fora isso é ZERO de índice corrompido.
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
Uso de letodb
Boa noite, hoje notei no log do leto alguns erros.
Exemplo parsecomando algo assim só não encontrei nada sobre o assunto.
Não detectei nada de errado além destas mensagens de erro.
Ainda vou estudar mais sobre estas mensagens.
Grato
Exemplo parsecomando algo assim só não encontrei nada sobre o assunto.
Não detectei nada de errado além destas mensagens de erro.
Ainda vou estudar mais sobre estas mensagens.
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
Uso de letodb
Bom dia Itamar.
Sobre o LETO novamente.
Ocorre o erro ainda
06.05.2024 17:01:14 ERROR leto_ParseCommand()
06.05.2024 17:01:14 w;57016320;02;
06.05 17:01:14.274 ERROR leto_SelectArea(57016320)! find Area failed
Pelo que entendi estes erros estão ocorrendo quando há uma perca de conexão com o servidor por algum motivo só não descobri ainda o motivo.
Ocorreu tbem a falha de conexão em um cliente meu que utiliza através da Wirelles, talvez seja por ocilação.
Pergunto, há alguma forma de detectar a falha de conexão e neste momento gerar nova conexão com servidor ?
Estou tentando montar dentro do errorsys, mas não consegui ainda entrar quando falha a conexão e reconectar.
Grato
Um abraço.
Sobre o LETO novamente.
Ocorre o erro ainda
06.05.2024 17:01:14 ERROR leto_ParseCommand()
06.05.2024 17:01:14 w;57016320;02;
06.05 17:01:14.274 ERROR leto_SelectArea(57016320)! find Area failed
Pelo que entendi estes erros estão ocorrendo quando há uma perca de conexão com o servidor por algum motivo só não descobri ainda o motivo.
Ocorreu tbem a falha de conexão em um cliente meu que utiliza através da Wirelles, talvez seja por ocilação.
Pergunto, há alguma forma de detectar a falha de conexão e neste momento gerar nova conexão com servidor ?
Estou tentando montar dentro do errorsys, mas não consegui ainda entrar quando falha a conexão e reconectar.
Grato
Um abraço.
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
Uso de letodb
Olá!
Aqui apare outros tipos. Esses dai eu não peguei.
Aqui é falha dbseek(), falha select(), dbclose... mas é pq o pessoal desliga o servidor e as estações manda pra mim esses erros.
Ou alguma maquina muito lenta(RAM 2Gib, muito antigo) que gera na estação(só nela) algum erro.
Saudações,
Itamar M. Lins Jr.
Aqui apare outros tipos. Esses dai eu não peguei.
Aqui é falha dbseek(), falha select(), dbclose... mas é pq o pessoal desliga o servidor e as estações manda pra mim esses erros.
Ou alguma maquina muito lenta(RAM 2Gib, muito antigo) que gera na estação(só nela) algum erro.
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
Uso de letodb
Boa tarde Itamar.
Grato pelo retorno.
Então, ocorre pra mim estes tbem, fiz até teste desligando no meu ambiente de produção do sistema e da erro mas não chama a opção no errorsys de tentar a reconexão com o banco de dados.
Mas aqui nos meus clientes ocorreu a esmo sem aparente motivo, tipo desligamento da maquina ou desligamento de um Hub, simplesmente da o erro e o sistema envia pra mim aonde ocorreu o erro, e claro, nestes lugares são exatamente por perca de conexão.
Aí pensei em forçar uma reconexão com opção de CONTINUAR OU SAIR para o cliente ver que o problema não é no sistema e sim em alguma parte de comunicação com o servidor.
Grato pela ajuda.
Grato pelo retorno.
Então, ocorre pra mim estes tbem, fiz até teste desligando no meu ambiente de produção do sistema e da erro mas não chama a opção no errorsys de tentar a reconexão com o banco de dados.
Mas aqui nos meus clientes ocorreu a esmo sem aparente motivo, tipo desligamento da maquina ou desligamento de um Hub, simplesmente da o erro e o sistema envia pra mim aonde ocorreu o erro, e claro, nestes lugares são exatamente por perca de conexão.
Aí pensei em forçar uma reconexão com opção de CONTINUAR OU SAIR para o cliente ver que o problema não é no sistema e sim em alguma parte de comunicação com o servidor.
Grato pela ajuda.
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
Uso de letodb
Olá!
Esse erro que vc diz é o uso de filtros.
Como está o comando que vc usa ?
Coloque o código aqui pra ver se tem como mudar para "index temporary"
Saudações,
Itamar M. Lins Jr.
Esse erro que vc diz é o uso de filtros.
Como está o comando que vc usa ?
Coloque o código aqui pra ver se tem como mudar para "index temporary"
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
Uso de letodb
Bom dia Itamar.
"Esse erro que vc diz é o uso de filtros."
Vc diz sobre SET FILTER? se for não utilizo filtro no sistema.
"Coloque o código aqui pra ver se tem como mudar para "index temporary""
Índices temporários eu uso criar como crio os principais, crio, utilizo e destruo ao fechar o modulo.
Vou testar o uso em memória e ver como será o andamento.
Realmente ocorre quando há alguma oscilação na rede, nada de errado no código do sistema.
Ocorre muito tbem quando é desligado o servidor no final do expediente e algum terminal ficou ligado dentro de algum módulo que usa o banco de dados.
É bem neste momento que tento fazer algo, finalizar ou retentar a conexão mas não obtive exito colocando na errorsys.
Estive pesquisando ontem a noite e encontrei uma postagem aqui no fórum que preferem usar TS do que usar LETO para acessar através de wirelles por exemplo.
Não tenho nada a reclamar do LETO usando wirelles, funcionou perfeitamente e rápido, então prefiro usar ele ao invés de fazer uma conexão com o servidor para usar dentro do servidor, não sou fã do usuário usando um login no servidor (opinião minha).
Grato
"Esse erro que vc diz é o uso de filtros."
Vc diz sobre SET FILTER? se for não utilizo filtro no sistema.
"Coloque o código aqui pra ver se tem como mudar para "index temporary""
Índices temporários eu uso criar como crio os principais, crio, utilizo e destruo ao fechar o modulo.
Vou testar o uso em memória e ver como será o andamento.
Realmente ocorre quando há alguma oscilação na rede, nada de errado no código do sistema.
Ocorre muito tbem quando é desligado o servidor no final do expediente e algum terminal ficou ligado dentro de algum módulo que usa o banco de dados.
É bem neste momento que tento fazer algo, finalizar ou retentar a conexão mas não obtive exito colocando na errorsys.
Estive pesquisando ontem a noite e encontrei uma postagem aqui no fórum que preferem usar TS do que usar LETO para acessar através de wirelles por exemplo.
Não tenho nada a reclamar do LETO usando wirelles, funcionou perfeitamente e rápido, então prefiro usar ele ao invés de fazer uma conexão com o servidor para usar dentro do servidor, não sou fã do usuário usando um login no servidor (opinião minha).
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
Uso de letodb
Bom dia.
Não estou conseguindo entender alguns processos do LETO.
Vejamos:
A função LETO_Connect() executa uma conexão com o servidor, correto, ela retorna se conectado ou não .T. ou .F., certo.
Executo ela no inicio do sistema e tudo bem e funcionando e conectado, até aí ok.
Estou fazendo o seguinte teste:
1-Executo o sistema acesso e tudo bem, banco de dados abre nos módulos do sistema, exemplo "orçamentos"
2-Efetuo uma DESCONEXÃO do banco de dados "NET STOP LETODBF_SERVICE", mesmo dentro do sistema mas os módulos fechados e banco de dados fechados.
3-Acesso o modulo "orçamentos" e o LETO_CONNECT() retorna verdadeiro, mesmo com o servidor parado como no item 2.
Estou entendendo errado a funçaõ?
Existe outro meio para descobrir se a conexão esta OFF ou ON?
Código:
Grato a todos.
Não estou conseguindo entender alguns processos do LETO.
Vejamos:
A função LETO_Connect() executa uma conexão com o servidor, correto, ela retorna se conectado ou não .T. ou .F., certo.
Executo ela no inicio do sistema e tudo bem e funcionando e conectado, até aí ok.
Estou fazendo o seguinte teste:
1-Executo o sistema acesso e tudo bem, banco de dados abre nos módulos do sistema, exemplo "orçamentos"
2-Efetuo uma DESCONEXÃO do banco de dados "NET STOP LETODBF_SERVICE", mesmo dentro do sistema mas os módulos fechados e banco de dados fechados.
3-Acesso o modulo "orçamentos" e o LETO_CONNECT() retorna verdadeiro, mesmo com o servidor parado como no item 2.
Estou entendendo errado a funçaõ?
Existe outro meio para descobrir se a conexão esta OFF ou ON?
Código:
Código: Selecionar todos
Function Connect_Server()
Local bRET:=.T.
Local nRES
w_vTXT:="Localizando o servidor em: "+oDB_PATH+"..."
ShowWaitProc()
WVW_PROCESSMESSAGES()
If oVia_RDD=="LETO"
nConect := Leto_Connect( oDB_Path ) //aqui no inicio do sistema retornar corretamente, mas depois não mais, retorna sempre verdadeiro
If nConect == -1
w_vTXT:="Falha ao conectar com o servidor em: "+oDB_PATH+"..."
ShowWaitProc()
WVW_PROCESSMESSAGES()
bRET:=.F.
nRes := leto_Connect_Err()
w_vTXT:="Não conectado ao servidor: "+oDB_PATH+"..."
If nRes == LETO_ERR_LOGIN
w_vTXT:="Falha ao Logar: "+oDB_PATH+"..."
ElseIf nRes == LETO_ERR_RECV
w_vTXT:="Erro ao conectar: "+oDB_PATH+"..."
ElseIf nRes == LETO_ERR_SEND
w_vTXT:="Erro de envio de pacote: "+oDB_PATH+"..."
EndIf
Else
w_vTXT:="Servidor conectado: "+oDB_PATH+"..."
EndIf
Else //DBFCDX
bRET:=wNetUse //.wT.
w_vTXT:="Servidor conectado: "+oDB_PATH+"..."
EndIf
ShowWaitProc()
WVW_PROCESSMESSAGES()
Return bRET
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
Uso de letodb
Olá!
Leto_connect() retorna um NUMERO.
NET STOP -> não é comando do LetoDB, é um comando do windows que PARA o serviço do LETODB
NET STOP na estação não faz nada. Executando no SERVIDOR é preciso ter PRIVILEGIO de administrador.(root)
Para desconectar use leto_disconnect() que retorna .t. ou .f.
Saudações,
Itamar M. Lins Jr.
Leto_connect() retorna um NUMERO.
NET STOP -> não é comando do LetoDB, é um comando do windows que PARA o serviço do LETODB
NET STOP na estação não faz nada. Executando no SERVIDOR é preciso ter PRIVILEGIO de administrador.(root)
Para desconectar use leto_disconnect() que retorna .t. ou .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
Uso de letodb
Bom dia Itamar.
"
NET STOP -> não é comando do LetoDB, é um comando do windows que PARA o serviço do LETODB
"
Sim, sei que não se trata de um comando LETODB, faço isto para simular a queda do servidor e realmente da certo mas só no inicio do sistema se eu usar outro LETO_CONNECT() dentro do sistema para refazer a conexão com o servidor retorna sempre .T. como se o servidor leto estivesse rodando.
Aí fiz um teste agora usando o LETO_DISCONECT() antes de tentar uma nova conexão e deu certo, com isto ele retorna .F. se o servidor estiver desconectado.
Leto_Disconnect() //com isto deu certo rodando antes de tentar uma nova conexão, tanto no inicio do sistema como dentro do sistema.
nConect := Leto_Connect( oDB_Path )
Só verifico e faço uma nova conexão somente se o sistema cair a conexão com o servidor, isto esta ocorrendo durante o uso do sistema.
Exemplo:
o terminal esta trabalhando normalmente no sistema e dentro de uns minutos de operação ao tentar entrar em outro modulo ao fazer a abertura dos arquivos através do LET_FILE() o sistema se depara na queda e não localiza o arquivo que esta lá certinho no servidor, mas em segundos tudo volta ao normal, mas como a minha função já retorna .F. (wnetuse), acaba tendo que o usuário sair do sistema e entrar novamente para isto, claro que se eu zerar a variável no inicio de cada modulo (wnetuse:=.T.) já resolveria o problema, mas compete alteração em todos os módulos e se a função de abertura de arquivos tentar uma nova conexão com o servidor e tendo localizado já retornando .T. assim atualizaria o sistema deixando abrir o banco de dados sem problemas.
Vou fazer uns testes para ver se resolve o problema de vez.
Valeu.
Grato
"
NET STOP -> não é comando do LetoDB, é um comando do windows que PARA o serviço do LETODB
"
Sim, sei que não se trata de um comando LETODB, faço isto para simular a queda do servidor e realmente da certo mas só no inicio do sistema se eu usar outro LETO_CONNECT() dentro do sistema para refazer a conexão com o servidor retorna sempre .T. como se o servidor leto estivesse rodando.
Aí fiz um teste agora usando o LETO_DISCONECT() antes de tentar uma nova conexão e deu certo, com isto ele retorna .F. se o servidor estiver desconectado.
Leto_Disconnect() //com isto deu certo rodando antes de tentar uma nova conexão, tanto no inicio do sistema como dentro do sistema.
nConect := Leto_Connect( oDB_Path )
Só verifico e faço uma nova conexão somente se o sistema cair a conexão com o servidor, isto esta ocorrendo durante o uso do sistema.
Exemplo:
o terminal esta trabalhando normalmente no sistema e dentro de uns minutos de operação ao tentar entrar em outro modulo ao fazer a abertura dos arquivos através do LET_FILE() o sistema se depara na queda e não localiza o arquivo que esta lá certinho no servidor, mas em segundos tudo volta ao normal, mas como a minha função já retorna .F. (wnetuse), acaba tendo que o usuário sair do sistema e entrar novamente para isto, claro que se eu zerar a variável no inicio de cada modulo (wnetuse:=.T.) já resolveria o problema, mas compete alteração em todos os módulos e se a função de abertura de arquivos tentar uma nova conexão com o servidor e tendo localizado já retornando .T. assim atualizaria o sistema deixando abrir o banco de dados sem problemas.
Vou fazer uns testes para ver se resolve o problema de vez.
Valeu.
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
Uso de letodb
Boa tarde.
Fiz vários teste e 50% resolvido.
"
Leto_Disconnect() //com isto deu certo rodando antes de tentar uma nova conexão, tanto no inicio do sistema como dentro do sistema.
nConect := Leto_Connect( oDB_Path )
"
Desta forma deu certo, consigo acessar novamente o banco de dados sem o sistema sair quando starto o LETO novamente.
Problema:
Quanto chega no Dbsetrelation() da erro "alias não existe", não consegui identificar o problema.
Lembrando que sem desconectar o banco de dados o dbsetrelation() funciona normalmente.
Se alguém souber fico grato.
Grato
Fiz vários teste e 50% resolvido.
"
Leto_Disconnect() //com isto deu certo rodando antes de tentar uma nova conexão, tanto no inicio do sistema como dentro do sistema.
nConect := Leto_Connect( oDB_Path )
"
Desta forma deu certo, consigo acessar novamente o banco de dados sem o sistema sair quando starto o LETO novamente.
Problema:
Quanto chega no Dbsetrelation() da erro "alias não existe", não consegui identificar o problema.
Lembrando que sem desconectar o banco de dados o dbsetrelation() funciona normalmente.
Se alguém souber fico grato.
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
Uso de letodb
Boa tarde.
Continuando com LETODBF.
Alguém já utilizou ou utiliza temporário em memória mas no LETODBF??
Pergunto, porque nos meus testes todas as formas deu errado.
o mesmo código temporário em memória no DBFCDX não funciona no LETODBF.
Outra pergunta, se funciona LETODBF e temporário na memória, da algum problema gerar na memória do servidor?
o arquivo mem ele é criado sempre?, porque quando não coloco a pasta direcionada o mem não aparece em lugar algum do sistema, mas quando coloco a pasta direcionada ele aparece, mas não consigo abrir, da erro.
O código acima funciona em DBFCDX já no LETO não da certo.
Alguém usa??
Alguém sabe me informar se o selecionamento de dados para o temporário fica mais rápido jogando na memória?
Porque em ARRAY fica mais rápido mas não consegui ainda um BROWSE para mostrar, porque uso o DBEDIT.
Grato
Continuando com LETODBF.
Alguém já utilizou ou utiliza temporário em memória mas no LETODBF??
Pergunto, porque nos meus testes todas as formas deu errado.
o mesmo código temporário em memória no DBFCDX não funciona no LETODBF.
Outra pergunta, se funciona LETODBF e temporário na memória, da algum problema gerar na memória do servidor?
o arquivo mem ele é criado sempre?, porque quando não coloco a pasta direcionada o mem não aparece em lugar algum do sistema, mas quando coloco a pasta direcionada ele aparece, mas não consigo abrir, da erro.
Código: Selecionar todos
DbCreate("mem:"+"&LArquivo.",Campos,cDriver,.T.,"memarea")
NewIndexFile(Chave ,cD_Tempo,"mem:"+LArquivo,aOd,.F.,,"MEMAREA") //minha função funciona normal
USE "mem:"+LArquivo ALIAS &LArquivo. //só consigo usar assim.
//DbUseArea(.T.,cDriver,"mem:"+LArquivo,Nil,.F.,.F.) desta forma não consigo usar, da erro
DbSetIndex("mem:"+LArquivo)
Alguém usa??
Alguém sabe me informar se o selecionamento de dados para o temporário fica mais rápido jogando na memória?
Porque em ARRAY fica mais rápido mas não consegui ainda um BROWSE para mostrar, porque uso o DBEDIT.
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
Uso de letodb
Olá!
Arquivo em memoria é do lado cliente.
Arquivo em memoria é do lado cliente.
Código: Selecionar todos
DbCreate("mem:arquivo.dbf",aStru,'DBFCDX',.T.,"arq") //cria e abre o dbf na RAM
Index on Str(Descend(data_compr),7)+cod_mercad tag arq01
//Aqui puxo do servidor para o cliente na RAM da estação.
cArqMes := cServidor+dAno+cNomeMes
//cServidor é o IP ou nome do servidor.
//dAno é uma subpasta
//cNomeMes é o arquivo
append from (cArqMes) for cod_mercad = eq->cod_mercad .AND. (nTQVDA += quantidade) via "LETO"
etc...
etc...
arq->(dbCloseArea())
dbDrop("mem:arquivo.dbf",,"DBFCDX")
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.