quot;Index is out of datequot; Alguém sabe?

Delphi

10/08/2003

Tenho um form de consultas, e no OnShow, coloco o índice em Clientes:
TBClientes.indexName:=´indexClientes´;
Ao abrir o form, os registros ficam em ordem de clientes. Desta forma dá certo.

Mas quando eu salvo um novo cliente, e logo em seguida abro o form de consultas, ele me retorna o erro ´Index is out of date´.

Já verifiquei que o erro está quando eu executo a instrução:
TBClientes.indexName:=emptystr;
que serve para voltar com o índice para CODIGO, depois pego o último registro para adicionar mais um, criando o código do novo cliente automaticamente.

Sempre que executo: TBClientes.indexName:=emptystr;
e depois executo: TBClientes.indexName:=´indexClientes´;
ocorre o erro: ´Index is out of date´.

Alguém sabe me dizer pq???

Agradeço desde já!


Luiz.gv

Luiz.gv

Curtidas 0

Respostas

Koplin

Koplin

10/08/2003

Eu evito erros assim mantendo as tabelas fechadas.
Abro para visualizar. Fecho quando não preciso mais.
Abro para inserir ou editar, Fecho quando Termino.
Assim eu tenho certeza que o ttable me traz os registros atualizados, e minimizo o risco de estourar indices.
Os componentes Dataset tem a propriedade Refresh, que recarrega os dados. Mas eu prefiro usar close e open;

TBClientes.close;
TBClientes.indexName:=emptystr;
TBClientes.open;
...
TBClientes.close;
TBClientes.indexName:=´indexClientes´;
TBClientes.open;

Pode não ser o melhor metodo, mas eu não tenho estes problemas.
Melhor seria vc usar uma Query para consulta e trazer os registros order by. O risco de corrupção de indices é menor.

Espero ter ajudado


GOSTEI 0
Bacalhau

Bacalhau

10/08/2003

O problema reside não nas tabelas, mas na parametrização da drive Paradox do BDE (Borland Database Engine).

Abraço do bacalhau


GOSTEI 0
POSTAR