Página 1 de 1
Posicionar Registro de Uma Tabela
Enviado: Julho 8th, 2011, 9:36 am
por ronaldobraz
Caros Colegas,
Para buscar alguns campos em uma determinada tabela eu utilizo
o PTabela que faço a pesquisa e retorno os campos necessarios para
ser manipulados.
Agora o que estou precisando se tem alguma forma de se posicionar em
um determinado registro para não precisar utilizar o retorno de campos do Ptabela
e sim poder utilizar assim: TabGlobal.TABELA.CAMPO.Conteudo e poder dar um
edit ou post no registro selecionado da tabela?
Re: Posicionar Registro de Uma Tabela
Enviado: Julho 8th, 2011, 9:44 am
por Suporte
Olá,
Infelizmente não existe possibilidade, pois uma vez pesquisando o conjunto de dados do "dataset" é fechado e se perde.
O que pode ser feito( se a tabela não for muito grande ), é a abertura da mesma e busca pelo registro através de um "locate", assim que encontrada o ponteiro do registro estará sobre o mesmo e poderá ser movido (do while...)conforme a necessidade. O uso de "bookmark" é ineficiente.
Acho que seria isso, qualquer dúvida é só postar.
Re: Posicionar Registro de Uma Tabela
Enviado: Julho 8th, 2011, 11:20 am
por ronaldobraz
Obs: A minha tabela tem uma grande quantidade de registros.
Mas analisando aqui vi que no componente TabGlobal existe alguns
propriedades como FiltroExtra, FiltroFixo, Filtro, Filter...
Se eu utilizar alguns desses filtro ele vai utilizar os indice do banco
de dados? E como utilizar esses filtro... qual o melhor para se utilizar
para uma filtragem temporário e depois limpar essa filtram?
Porque a minha necessidade é uma pesquisa que vai retornar somente um registro
porque sempre vou pesquisar em campos chaves?
Re: Posicionar Registro de Uma Tabela
Enviado: Julho 8th, 2011, 2:08 pm
por Gustavo
Utilizando os filtros irá vai utilizar os indice do banco de dados.
Exemplo de como utilizar:
TabGlobal.DRESERVA_PEDIDO.FiltroFixo.Clear;
TabGlobal.DRESERVA_PEDIDO.FiltroFixo.add('RESERVA_PEDIDO.DATA_RESERVA='+#39+datasql(dataatual)+#39);
TabGlobal.DRESERVA_PEDIDO.atualizasql;
TabGlobal.DRESERVA_PEDIDO.filtrofixo.clear;
TabGlobal.DRESERVA_PEDIDO.atualizasql;
Na segunda vez que você utilizar o "filtrofixo.clear" , estará limpando o filtro.