[RESOLVIDO] CDX Comportamento estranho...
Enviado: 09 Ago 2009 21:24
Olá caros colegas,
Percebi algo estranho com o RDD CDX.
Estou trabalhando num sistema com 6 bancos de dados abertos simultaneamente.
a sequencia de abertura é a seguinte:
O meu problema está na área 2, digitei uns 4 registros, até aqui tudo bem, mas depois que eu reindexo os bancos de dados, sempre apago os indices como a regra manda, qdo volto no módulo de pesquisa sempre some o ultimo registro, mas ele continua gravado no DBF.
Andei fazendo uns testes e me parece que nao está atualizando o segundo campo.
Eu utilizo o dbedit como ajuda de pesquisa indexado pelo campo nome, é exatamente aqui, depois de indexado sempre some o ultimo registro, se eu alterar este ultimo registro(o registro que sumiu) pelo campo NOME ele dá um erro: _DBFCDX 8006 (errro de corrupção de indice) aí me é apresentado a opçao QUIT e DEFAULT, clicando em DEFAULT ele retorna ao programa e volta o registro que tinha sumido. após indexar de novo some novamente o ultimo registro.
Tudo me indica q a chave codecob está sendo atualizado, pois acrescentando registros mesmo após o ultimo ter sumido o código continua aumentando conforme o normal.
Se eu trocar o indice na parte de ajuda de pesquisa COB2(NOME) por COB1(CODIGO) ele apresenta todos os registros sem faltar nenhum, mas é necessário que seja indexado por COB2.
Algum colega já passou por isso antes?
Pesquisei sobre isso, mas o que eu achei nao me ajudou em nada...
Desde já agradeço a atenção.
Percebi algo estranho com o RDD CDX.
Estou trabalhando num sistema com 6 bancos de dados abertos simultaneamente.
a sequencia de abertura é a seguinte:
Código: Selecionar todos
PROCEDURE OpenDBF
SELECT 1
USE CLIENTES Alias dbCLTS
Set Index to CLIENTES
SELECT 2
USE COBRADOR Alias dbCBRS
Set Index to COBRADOR
SELECT 3
USE PRACAS Alias dbPRCS
Set Index to PRACAS
SELECT 4
USE MESAS Alias dbMESA
Set Index to MESAS
SELECT 5
USE CLASS Alias dbCLASS
Set Index to CLASS
SELECT 6
USE RESCODE Alias dbRSCD
Set Index to RESCODE
return NILCódigo: Selecionar todos
USE COBRADOR
L := 0
R := RECCOUNT()*2
nEVERY:=IIF(LASTREC()>=100,INT(LASTREC()/10),INT(LASTREC()/1))
INDEX ON CODECOB TAG COB1 TO COBRADOR EVAL CDXPROGRESS("COBRADOR.DBF","COBRADOR.CDX","CODIGO") EVERY nEVERY=nEVERY
INDEX ON NOME TAG COB2 TO COBRADOR EVAL CDXPROGRESS("COBRADOR.DBF","COBRADOR.CDX","NOME") EVERY nEVERY=nEVERY
R:=0
DBCLOSEALL()Andei fazendo uns testes e me parece que nao está atualizando o segundo campo.
Eu utilizo o dbedit como ajuda de pesquisa indexado pelo campo nome, é exatamente aqui, depois de indexado sempre some o ultimo registro, se eu alterar este ultimo registro(o registro que sumiu) pelo campo NOME ele dá um erro: _DBFCDX 8006 (errro de corrupção de indice) aí me é apresentado a opçao QUIT e DEFAULT, clicando em DEFAULT ele retorna ao programa e volta o registro que tinha sumido. após indexar de novo some novamente o ultimo registro.
Tudo me indica q a chave codecob está sendo atualizado, pois acrescentando registros mesmo após o ultimo ter sumido o código continua aumentando conforme o normal.
Se eu trocar o indice na parte de ajuda de pesquisa COB2(NOME) por COB1(CODIGO) ele apresenta todos os registros sem faltar nenhum, mas é necessário que seja indexado por COB2.
Algum colega já passou por isso antes?
Pesquisei sobre isso, mas o que eu achei nao me ajudou em nada...
Desde já agradeço a atenção.